ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8、使用注解开发

2021-11-03 18:58:00  阅读:131  来源: 互联网

标签:xml 装配 Component 等价 开发 使用 注解 属性


①在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(“属性值”))
③使用的过程中只需要注意一个问题:
必须让注解生效(开启注解的支持和扫描包)

标签:xml,装配,Component,等价,开发,使用,注解,属性
来源: https://blog.csdn.net/qq_51143149/article/details/121128022

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有