使用注解开发
Spring 之后,导入 aop 的包才可以使用注解开发
约束
<?xml version="1.0" encoding="UTF-8"?>
<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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
</beans>
注解支持
<context:annotation-config/>
-
bean
-
属性如何注入
//等价于 <bean id="user" class="com.yl.pojo.User"/> @Component public class User { //等价于<property name="name" value="杨杨"/> public String name; @Value("杨杨") public void setName(String name) { this.name = name; } }
-
衍生注解
@Component 衍生注解,web开发中按照mvc三层架构分层
- dao @Repository
- service @Service
- controller @Controller
- 上面4个注解功能一样:将某个类注册到Spring中,装配Bean
-
自动装配
- @Autowired:自动装配,通过类型,字段 - 可配合@Qualifier(value=" ")使用 - @Nullable:字段标记该注解,可为null - @Resource:自动装配,通过字段,类型 - @Component:组件,放在类上,则该类被Spring管理,即bean
-
作用域
@Component @Scope("singleton") //prototype public class User { //等价于<property name="name" value="杨杨"/> public String name; @Value("杨杨") public void setName(String name) { this.name = name; } }
-
小结
xml 与 注解
- xml 万金油,维护简单方便
- 注解 不是自己的类使用不了,维护相对复杂
使用场景
-
xml 管理 bean
-
注解只负责完成属性的注入
-
必须要开启注解支持,使注解生效
<!--指定要扫描的包,此包下的注解就会生效--> <context:component-scan base-package="com.yl"/> <!--注解支持--> <context:annotation-config/>