[Spring] 04 @**** 注解开发


prtyaa
prtyaa 2023-12-27 15:21:34 65606
分类专栏: 资讯

Spring 注解

之前没有写注解是因为还是要深深的体会一下注解的使用,但学完后,在写一写繁琐的代码,不免会被人说一句,那我学他干啥呀?

理解原理之后相应的"偷懒即将开始"--学习注解

打♥即重点

❤使用注解前一定要在applicationContext.xml中配置注解扫描

context:comcomponent-scan

---只扫描@Component 和@Service

aop:aspectj-autoproxy

---只扫描@Aspect


♥@Component---------- (IOC操作)

创建类对象,相当于配置<bean/>

之前我们生成pojo对象的时候,都需要到applicationConetxt.xml中通过配置<bean>标签来生成对象,写法如下

<bean id="stu" class="com.lin.pojo.Student"/>

这样写的话,我们有一个pojo类就要写一个<bean>标签,可以说是非常麻烦,那怎么办呢?

两步走

1.applicationContext.xml中配置pojo包扫描

2.在pojo中的类上加上注解@Component注解

bean的ID默认为类名首字母小写,也可以指定ID,例如@Component("stu")

@Resource ---(DI) --建议用在pojo的属性上

  1. 默认按照byName注入,如果没有名称对象,按照byType注 --最好保证属性名和配置的id一致
  2. 建议把对象名称和spring容器中对象名相同

如果只配置了@Component

这样写完后,只是默认的生成了一个无参无get/set方法的对象,

过去配置<bean>标签的时候是这样写的,

可用了注解后,就没法赋值了

这个时候就需要在属性上用到@Resource(不需要写对象的get/set)

如果配置了@Resource 也在applicationConetx.xml配置了如下的操作

那么创建对象的时候属性值name即为zs

@Autowired(DI) --建议用在service的Mapper属性上


♥@Service---------- (IOC操作)

用法与@Component相似,写在ServiceImpl上

因为需要Mapper的使用,所以需要配合@Autowired使用

1.配置注解扫描

2.注解使用(一般不会使用("别名")) 都是类名首字母小写


@Repository ---------- (IOC操作)

与@Component功能相同.写在数据访问层(dao/mapper)类上.

但因为有mybatis所以基本不用~


♥@Controller

与@Component功能相同. 写在控制器类上.


♥@Value()

获取properties文件中内容,一般用于提取常用的属性,方便后期代码修改

1.创建 ***.properties文件

 

 

2.配置读取文件属性

3.使用...


@Pointcut() 定义切点 ---------- (AOP操作-AspectJ)


@Aspect() 定义切面类 ---------- (AOP操作-AspectJ)

1.applicationContext.xml中配置扫描

 

 

2.添加注解


@Before() 前置通知


@After 后置通知

@AfterReturning 后置通知,必须切点正确执行


@AfterThrowing 异常通知


@Arround 环绕通知


@Transactional

用于进行事务管理

哪个方法需要事务管理, 就在哪个方法上加

当前方法发生异常时自动事务回滚, 没有发生异常时, 自动进行事务的提交

1.配置开启事务扫描

<!--配置声明式事务-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="ds"></property>
    </bean>

    <!--扫描 @Transactional-->
    <tx:annotation-driven></tx:annotation-driven>

2.添加注解


其他技能点补充

在applicationContext中,也是支持属性文件读取操作的

读取属性文件

<context:property-placeholder location="classpath:jdbc.properties"/>

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=31412
赞同 0
评论 0 条
prtyaaL0
粉丝 1 发表 2554 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1448
银河麒麟打印带有图像的文档时出错  1365
银河麒麟添加打印机时,出现“server-error-internal-error”  1151
统信桌面专业版【如何查询系统安装时间】  1073
统信操作系统各版本介绍  1070
统信桌面专业版【全盘安装UOS系统】介绍  1028
麒麟系统也能完整体验微信啦!  984
统信【启动盘制作工具】使用介绍  627
统信桌面专业版【一个U盘做多个系统启动盘】的方法  575
信刻全自动档案蓝光光盘检测一体机  484
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!