注解:代码中的特殊标记,使用注解可以直接完成功能
注解写法:@注解名称(属性名称=属性值)
注解可以使用在类上,方法上,属性上
Spring注解开发
需要导入aop的jar包
除了引入约束beans,还需要引入约束context
注解创建对象
1、在创建对象的类上面使用注解(适用于标识所有bean)
@Component(value="要创建的对象名") 等价于配置文件中的 <bean id="对象名" class="路径"></bean>
2、对于web开发,dao、service、action层都有相应的专门的注解
@Repository:标识此bean为一个dao
@Service:service层的bean
@Controller:action层的bean
配置文件中只需要配置一句话,用于开启注解扫描(到包里面去扫描类、方法、属性上面是否有注解)
<context:component-sacn base-package="创建对象所在类的包名"></context:component-scan>
原理:在加载spring容器时,根据上边配置的包路径,扫描包下的及子包下的类,如果标识了:@Controller、@Service、@Repository、@Component进行实例化。
@Autowired:
按类型注入
1、可以标识在属性上,根据属性类型去spring容器中找同类型的bean,找到则将bean注入到属性中。
@Autowired//按类型注入
private CustomerDao customerDao;
注意:如果容器中同一个类型的bean如果有多个,使用Autowried报错,找到多个同类型的bean,使用@Qualifier和Autowired配置配置,Qualifier指定将哪个bean注入进来。
@Resource:
按名称注入
和Autowired区别:Resource注解是jdk下的,而autoWired是spring提供。
Resource可以实现和Autowired+Qualifier组合起来一样的功能 。