1.@Configuration:作用于类上,表示该类为一个配置类
2@bean:作用于方法上,
如:
@Bean
public Account account(){
return new Account(1,"wz",22);
} }
和applicationContext.xml中
<bean id="account" class="类的路径">
<property name="id" value="1"></property>
<property name="name" value="wz"></property>
<property name="money" value="22></property>
</bean>
效果相同
3@ComponentScan:作用于配置类上,有value属性,可以指定要扫描的包(value是数组类型,可以指定多个要扫描的包),效果等用于
<context:component-scan base-package="要扫描的包及其子包"></context:component-scan>
4@scope():表示作用域,常用的有
singleton:单例的(默认的),在application.xml加载时创建一次并放入ioc容器中,调用getbean获取对象时从ioc容器中取出
prototype:多例的,在每次获取对象时创建对象
5@Lazy:延迟加载,只用于单例bean,开启延迟加载后在application.xml加载时不先创建对象,而是第一封获取对象时才创建对象
6@import(要注册的类.class):快速注册bean,id默认为全类名
7@Component 组件,没有明确的角色
@Service 在业务逻辑层使用(service层)
@Repository 在数据访问层使用(dao层)
@Controller 在展现层使用,控制器的声明(Controller层)
这4个注解都代表把类添加到ioc容器中,作用相同Controller/Repository/Service用于特定的层中
8@Autowired:自动注入,默认是按照type注入,可以用required=false来制定是否必须注入,不指定的话当没有该类型会报错,为false时,注入失败可以指定为null