常见的Spring项目中,bean对象要么通过XML文件注入,要么通过注解注入,其实,Spring中还可以通过Java配置类来进行bean的注入。
和传统xml方式和注解方式不同的是,不管是xml还是注解注入,都离不开xml文件,xml注入全程在xml中进行,注解方式需要在xml中配置需要注解注入的包,而Java配置类,则完全不需要xml文件,只有Java文件。
其实,就是用一个Java类来代替xml文件,这个类和xml文件的作用是一样的,都是为了给Spring容器注入bean。
在SpringBoot中,这种bean注入方式大量出现,有很多直接学习SpringBoot的同学,很容易把Java配置类当做SpringBoot的特点,其实不然,Java配置类来注入bean,其实也是Spring的功能,只不过在传统Spring项目中使用较少,在SpringBoot中被大量使用而已。
下面举个使用Java配置类来进行bean注入的例子:
1.先随便创建一个对象:
比如User()

public class User {
   private String name = "小明";
}

2.编写一个Config配置类:(作用等同xml文件
用@Configuration进行注解的,就是配置类,在配置类中,写返回值是User类型的方法,这里需要注意,方法名就是注入的bean的id,可以根据方法名获取对象,用@Bean来标注。

@Configuration 
public class MyConfig {
   @Bean 
   public User user(){
       return new User();
  }
}

3.在配置类中有方法返回值得那些类,其实和在xml配置了注解约束的效果是一样的,因此,要想把这些对象注入bean,可别忘了给类上面加上注解:

@Component
public class User {
   private String name = "小明";
}

4.在容器中取出bean使用:

 ApplicationContext applicationContext =
           new AnnotationConfigApplicationContext(MyConfig.class);
   User user= (User) applicationContext.getBean("user");

最后,补充一下,既然Java配置类和xml作用一样,那么,xml可以整合几个xml文件,Java配置类也可以:在@Configuration下面,再加一个@Import的注解,就可以实现整合多个Java配置类,括号中是配置类的反射对象。

@Configuration
@Import(MyConfig2.class)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐