基于注解的IOC配置
注解配置和xml配置要实现的功能是一样的,都是要降低程序间的耦合,只是配置的形式不一样.
环境搭建:
1.拷贝jar包到工程lib目录
2.在类的跟路径下创建一个任意名称的xml文件(不能是中文)
3.使用@Component注解配置管理的资源
4.在spring的配置文件中开启对注解ioc的支持
常用注解:
@component
作用: 把资源让spring来管理,相当于xml中配置一个bean
属性:value : 指定的bean 的id.
@Autowired
作用;自动按照类型注入,当使用注解注入属性时,set方法可以shenglve.它只能注入其他bean类型,当有多个类型匹配时,使用要注入的对象变量名称作为bean的id,在spring容器查找,找到了也可以注入成功,找不到就报错.
@Qualifier
作用:在自动按照类型注入的基础上,再按照bean的id注入,它在给字段注入时不能独立使用,必须和@Autowired一起使用,但是, 给方法参数注入的时候,可以独立使用
属性:value: 指定bean的id
@Resource
作用:直接按照bean的id注入,它只能注入其他bean类型
属性:知道bean的id
@value
作用: 注入基本数据类型 和String类型数据的
属性:value: 用于指定值
@scope
作用:指定bean的作用范围
属性: value : 指定范围的值
取值:singleton, prototype,request,session,gilbalsession
关于Spring注解和xml的选择问题
注解的优势;
配置简单,维护方便,
xml的优势:
修改时,不用改源码,不涉及重新编译和部署.
Spring纯注解配置;
新注解说明
@configuration
作用:用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解
属性:value 用于指定配置类的字节码
@componenScan
作用:用于指定spring在初始化容器时要扫描的包.
属性:basePackages: 用于指定要扫描的包,和value属性作用一样
@propertySource
作用:用于加载.properties文件中的配置,
属性: value[] : 用于指定propertyties文件位置,如果是在类路径下,需要写上classPath
@import
作用:用于导入其他配置类,在引入其他配置类时,可以不用再写@configuration注解,
@bean
作用:该注解写在方法上,表明使用此方法创建一个对象,并且放入spring容器,.
属性:给当前@bean注解方法创建的对象指定一个名称(bean的id)