spring中IOC的常用注解
常用注解分类
1.用于创建对象的注解 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的 2.用于数据注入的注解 他们的作用就和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的 3.关于对象作用域的注解 他们的作用就和在bean标签中使用scope属性实现的功能是一样的 4.关于对象生命周期的注解 他们的作用就和在bean标签中使用init-method和destroy-method的作用是一样的
用于创建对象的注解
@Component
作用:用于把当前类加载到spring容器中 属性:value,用来指定bean的id,不写时,默认为类名,首字母改小写
由@Component衍生来的作用相同的注解:
@Controller:用来标记表现层 @Service:用来标记业务层 @Repository:用来标记持久层 他们的作用及属性都是与@Component一模一样的,提供了更加明确的语义化。
用于注入数据的注解
@Autowired
自动按照类型注入,当容器中只有唯一一个对象时才能注入成功;当使用该注解时,就不需要set方法了 注意:当容器中有多个对象时,可以通过名称区别自动注入。如 @Autowired private IAccountDao accountDao1;
@Qualifier
与@Autowired注解同时使用,当有多个实现类对象时,可以用该注解指定id来注入 该注解也可以单独用在方法参数上
@Resource
直接按照bean的id注入,可以单独使用,不能在方法参数上使用 注意:jdk9不能使用该注解
@Value
作用:用于注入基本类型和String类型的数据 属性: value:用于指定数据的值。它可以使用spring中SpEL(也就是spring的el表达式) SpEL的写法:${表达式}
关于对象作用域的注解
@Scope
与xml中的scope属性一样,用来改变对象的作用域 值:singleton、prototype、request、session、global-session
关于对象生命周期的注解(了解)
他们的作用就和在bean标签中使用init-method和destroy-method的作用是一样的
@PostConstruct
指定初始化时的方法
@PreDestroy
指定销毁时的方法