看此文时请先查看此博文中的—注解注入本博文是他的延伸
-
@Configuration注解
作用:指定当前类是一个配置类(相当于xml配置文件的作用)
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以省略不写。
-
@ComponentScan注解
作用:用于通过注解指定spring在创建容器时要扫描的包(相当于使用<context:component-scan base-package="com.msg"></context:component-scan>
标签)
属性:
value:它和context:component-scan标签得basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。
上下两张图作用是一样的
-
@Bean注解
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中(解决了将jar中的类对象加载到容器中的问题)
属性:name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象,若是查找不到则报错,若是找得到一个则直接赋值,若是找到两个或两个以上则使用参数名称与对比id赋值,若是没有相同的我们还可以使用**@Qualifier注解**配合使用
-
@Import注解
作用:用于导入其他的配置类
属性:
value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类,并且其子类可以省略**@Configuration**注解
-
@PropertySource注解
作用:用于指定properties文件的位置
属性:
value:指定文件的名称和路径。
关键字:classpath,表示类路径下
读取到的数据可以使用EL表达式取值如图
properties文件如下
以上就是纯注解开发需要使用到的注解使用纯注解开发时获取容器的方法有些不同如图
//注解开发获取ioc容器
ApplicationContext applicationContext01 = new AnnotationConfigApplicationContext(SpringConfig.class);
//xml开发获取ioc容器
ApplicationContext applicationContext02 = new ClassPathXmlApplicationContext("spring.xml");