8、使用注解开发

①在Spring之后, 要使用注解开发, 必须要保证aop的包导入了
![image.png](https://www.icode9.com/i/ll/?i=img_convert/d2b39238ec0ee423a83c74dd70e32603.png#clientId=uc323d233-b8ee-4&from=paste&height=245&id=u06ae78cf&margin=[object Object]&name=image.png&originHeight=257&originWidth=620&originalType=binary&ratio=1&size=144201&status=done&style=none&taskId=u19ec357a-3df5-4ed3-b4af-1754fcac124&width=592)
②使用注解要导入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>

③指定要扫描的包, 这个包下的注解就会生效
<**context:component-scan base-package="com.pojo"**/>

<?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:component-scan base-package="com"/>
    <context:annotation-config/>

</beans>

8.1、bean

@Component : 组件, 放在类上, 说明这个类被Spring管理了, 就是bean!_
等价于: _

//@Component 组件
@Component  //等价于: <bean id="user" class="com.pojo.User"/>
public class User {

8.2、属性如何注入

@Value(“属性值”) : 注入属性值, 放在属性或者Set方法上
_ 等价于: _

//@Component 组件
@Component  //等价于: <bean id="user" class="com.pojo.User"/>
public class User {

    @Value("情伤难合")//等价于: <property name="name" value="身伤易逝"/>
    public String name ;
}

8.3、衍生的注解

@Component 有几个衍生注解, 我们在web开发中, 会按照MVC三层架构分层!
①dao [@Repository**]
②service [@Service
]
③controller [@Controller
]**
这4个注解功能完全一样, 都是代表将某个类注册到Spring中, 装配Bean


8.4、自动装配

@Autowired : 自动装配(通过类型、名字), 用在属性或Set方法上
如果@Autowired不能自动装配上属性, 则需通过@Qualifier(value = “XXX”)去配置
@Nullable : 如果标记了这个注解, 说明这个字段可以为"null", 用在属性上
@Resource : 通过名字、类型实现自动装配, 用在属性或Set方法上

8.5、作用域

@Scope(“singleton”) //标注该类是单例模式 prototype: 原型模式
用在类上(要与@Component 连用)


8.6、小结

xml与注解 :
①xml更加万能, 适用于任何场合! 维护简单方便
②注解 不是自己的类就无法使用(不好引用), 维护相对复杂

xml与注解的最佳实践 :
①xml用来管理bean
②注解只负责属性的注入(@Value(“属性值”))
③使用的过程中只需要注意一个问题:
必须让注解生效(开启注解的支持和扫描包)

上一篇:vue学习-路由入门


下一篇:Spring入门学习---04