JavaConfig,是在 Spring 3.0 开始从一个独立的项目并入到 Spring 中的。JavaConfig 可以看成一个用于完成 Bean 装配的 Spring 配置文件,即 Spring 容器,只不过该容器不是 XML文件,而是由程序员使用 Java 自己编写的 Java 类。

一、@Configuration 注解的使用

  • Spring3.0@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法

二、@Component 的注解的使用

  • 一旦使用关于Spring的注解出现在类里,例如别的地方需要使用这个类,要用到@Autowired 注解,被注解的这个类是从Spring容器里取出来的,那调用的实现类也需要被Spring容器管理,加上@Component
  • 把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class="">
  • 泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller@Service@Repository的时候),我们就可以使用@Component来标注这个类
  • @Controller 控制器 (注入服务)
  • @Service 服务(注入dao
  • @Repository (实现dao访问)

三、@Configuration和@Component的区别

javafx 使用spring管理界面不刷新 springboot javaconfig_spring boot

javafx 使用spring管理界面不刷新 springboot javaconfig_Java_02

javafx 使用spring管理界面不刷新 springboot javaconfig_java_03

@Configuration 和 @Component区别

  • 如果使用@Configuration,所有用@Bean标记的方法会被包装成CGLIBwrapper其工作原理是:如果方式是首次被调用那么原始的方法体会被执行并且结果对象会被注册到Spring上下文中。之后所有的对该方法的调用仅仅只是从Spring上下文中取回该对象返回给调用者
  • 如果使用@Component,所有用@Bean只是纯JAVA方式的调用,需要使用到@Autowired注解,多次调用该方法返回的是不同的对象实例。

四、@Bean注解的使用

  • Spring@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
  • SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。

五、@Bean和@Autowired的区别

我也引用一下最漂亮的回答

  • @Bean 告诉Spring:”这是这个类的一个实例,请保留它,并在我请求时将它还给我“
  • @Autowired说:”请给我一个这个类的实例,例如,一个我之前用@Bean注解创建的实例“

六、什么是POJO

  • Plain Ordinary Java Object:简单普通的java对象
  • 有一些private的参数作为对象的属性及其gettersetter方法的类
  • POJO主要用于数据的临时传递,它只能装载数据, 作为数据存储的载体,不包含业务逻辑的单纯用来存储数据的java

七、@ConfigurationProperties注解

  • java config是指基于java配置的spring,传统的Spring一般都是基本xml配置的,后来spring3.0新增了许多java config的注解,特别是spring boot,基本都是清一色的java config
  • @ConfigurationPropertiesPOJO类的命名比较严格,因为它必须和prefix的后缀名要一致,不然值会绑定不上,特殊的后缀名是”driver-class-name“这种带横杠的情况,在POJO里面的命名规则是下划线转驼峰就可以绑定成功,所以就是”driverClassName
  • @ConfigurationProperties@Value 有着相同的功能,但是@ConfigurationProperties的写法更为方便

八、@Data注解的使用

  • 提高代码的简洁,使用这个注解可以省去代码中大量的get()set()toString()等方法