使用注解开发Spring
开始使用注解学习Spring的开发
使用注解必须要导入AOP包,必须要添加context命名空间!!!实现注解支持
<?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>
0.在这里引出一个注解@Nullable
正常实体类如果定义有参构造,那么在xml配置文件中必须要用相应的定义<constructor-arg name="name" value="chen"/>
但是我们用@Nullable标签后,以为着这个属性可以是空,可以不用定义了

1.接着上文,使用java注解进行制动装配使用@Autowired
在pojo类中使用注解,在XML中就不用在<bean>标签加autowired属性了

@Autowired是可以通过byName的方式来自动注入,也可以byType。
如果没有名字相同的,然后通过byType的方法注入。当没有名字相同,Type属性有多个时候,自动装配失败
<bean id="cat1" class="com.chen.pojo.Cat"/> //byType找到它
<bean id="dog1" class="com.chen.pojo.Dog"/>
<bean id="dog" class="com.chen.pojo.Dog"/> //byName找到它
使用了@Autowired注解,pojo实体类中属性的set方法都可以不用写了!不写也不会报错了!
这里扩展一个java自带的注解@Resource也可以实现自动装配
2.使用注解开发涉及的点
使用注解必须要导入AOP包,必须要添加context命名空间!!!实现注解支持
使用注解时候context标签开始扫描注解。扫描包里面的类,方法,属性是否有注解。当包下的某个类里面有注解实现bean到容器中,前面就有个小叶子
必须要指定要扫描的包,这样Spring的相关注解才能生效!!!

- bean使用注解
- @Component
在实体类中使用这个注解,就相当于将这个实体类放到IOC容器中了
@Component
//类似于xml中<bean id="user" class="com.chen.pojo.User"> public class User { private String name; public String getName() { return name; } }
- 衍生的注解
因为我们在实际开发过程中,所有的类不全是实体类,所以根据不同的类(Dao层的类,Service层的类,Control层的类)衍生出了多个注解
这些衍生注解的作用和@component的作用一样,都是将类放到容器中,方便我们在使用的过程中直接通过getBean使用
dao层@Repository
control层@Controller
service层 @Service
- 使用注解对属性注入
- @Value。可以给简单属性赋值
@Value 可以放在属性的上面,也可以放在属性对应的Set()方法的上面
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class User { @Value("小陈") //类似于 <property name="name" value="小陈"/> private String name; public String getName() { return name; } }
- 自动装配
- 上面写的就是注解自动装配
- 作用域
- @Scope(value = "singleton") 定义这个bean的作用域
- 小结
- xml更加万能,维护简单方便
- 注解不是自己的类用不了。(类似于xml配置中的 ref="别的类")
- 最佳生效方式:
- xml来管理bean
- 注解来负责完成属性的注入
我们在使用中一定要注意使用注解的前提条件:导包,context命名空间开始注解,3扫描对应的包

浙公网安备 33010602011771号