注解:就是一个类,使用@注解名称
开发中:使用注解 取代 xml配置文件
1. @Component取代<bean class="">
@Component("id")取代 <bean id="" class="">
2.web开发,提供3个@Component注解衍生注解(功能一样)取代<bean class="">
@Repository:dao层
@Service:service层
@Controller:web层
3.依赖注入,给私有字段设置,也可以给setter方法设置
普通值:@Value("")
引用值:
方式1:按照【类型】注入
@Autowired
方式2:按照【名称】注入1
@Autowired
@Qualifier("名称")
方式3:按照【名称】注入2
@Resource("名称")
4.生命周期
初始化:@PostConstruct
销毁:@PreDestroy
5.作用域
@Scope("prototype")多例
但是需要注意的是,注解使用前提是需要添加命名空间,让spring扫描含有注解类。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 组件扫描,扫描含有注解的类 --> <context:component-scan base-package="com.zju.annotation_0"></context:component-scan> </beans>
注解和XML配置文件混合使用:
1.将所有的bean都配置xml中
<bean id="" class="">
2.将所有的依赖都使用注解
@Autowired
默认是不生效的,为了生效,需要在xml配置:<context:annotation-config>
总结:
注解1:<context:component-scan base-package=" ">
注解2:<context:annotation-config>
1.一般情况两个注解不一起使用。
2. “注解1”扫描含有注解(@Component等)类,注入注解自动生效。
“注解2”只在xml和注解(注入)混合使用时,使注入注解生效。