@Component注解的作用

2023-11-04

Spring自带的@Component注解及扩展:

@Component:定义Spring管理Bean(也就是将标注@Component注解的类交由spring管理)

@AspectJ风格的切面可以通过@Compenent注解标识其为Spring管理Bean,而@Aspect注解不能被Spring自动识别并注册为Bean,必须通过@Component注解来完成

Java代码 

@Component    
@Aspect    
public class TestAspect {    
    @Pointcut(value="execution(* *(..))")    
    private void pointcut() {}    
      
    @Before(value="pointcut()")    
    public void before() {    
        System.out.println("=======before");    
    }    
}   

通过@Component将切面定义为Spring管理Bean。

@Repository

@Component扩展,被@Repository注解的POJO类表示DAO层实现,从而见到该注解就想到DAO层实现,使用方式和@Component相同;

@Service

@Component扩展,被@Service注解的POJO类表示Service层实现,从而见到该注解就想到Service层实现,使用方式和@Component相同;

@Controller

@Component扩展,被@Controller注解的类表示Web层实现,从而见到该注解就想到Web层实现,使用方式和@Component相同;

在使用Spring代理时,默认只有在public可见度的方法的@Transactional 注解才是有效的,其它可见度(protected、private、包可见)的方法上即使有@Transactional 注解也不会应用这些事务属性的,Spring也不会报错,如果你非要使用非公共方法注解事务管理的话,可考虑使用AspectJ。

Spring声明式事务实现其实就是Spring AOP+线程绑定实现,利用AOP实现开启和关闭事务利用线程绑定(ThreadLocal)实现跨越多个方法实现事务传播。

补充:

@Configuration注解:

点进去可以看到@Component注解。

也就是说,@Configuration注解是声明一个IOC容器,把所有标记了@Bean注解的类注入到IOC容器中去

就相当于xml配置文件:

<!--beans就是@Configuration注解 -->
<beans>
    <!--bean 就是一个个@Component注解声明的类 -->
    <bean></bean>
    <bean></bean>
    <bean></bean>
</beans>

参考:https://www.iteye.com/blog/uule-2106427

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@Component注解的作用 的相关文章

随机推荐

  • 【深入理解HTTP协议】破冰篇

    前言 本文将会引入HTTP的发展史 相关概念 相关协议 网络分层模型 域名 并搭建HTTP实验环境 参考课程为极客时间罗建锋老师的 透视HTTP协议 讲得很棒 强推 文章目录 1 HTTP协议的发展史 2 HTTP是什么 2 1 协议 2
  • flink-1.13.6提交sql到远程集群终于成功了

    java 1 8 flink 1 13 6 bin scala 2 11 hive 1 1 1 hadoop 2 6 0 cdh5 16 2 通过纯SQL的流模式提交到远程flink集群执行 中间遇到不少问题 现在终于能跑通了 附码云地址
  • Pysyft学习笔记一:dome思路

    Pysyft是一个比较适合学习FL学习小白的开源框架 相比与FATE的高封装性 Pysyft提供了更高的自由度 虽然FATE确实加密算法等等的效果做的非常的好 但是我在Ubuntu下面捣鼓了两天 下载了Mysql Redis等等的一堆东西
  • 设计模式状态模式uml_UML的完整形式是什么?

    设计模式状态模式uml UML 统一建模语言 UML Unified Modeling Language UML is an abbreviation of Unified Modeling Language In the field of
  • 【Mac】Mac安装telnet

    1 美图 2 安装 Homebrew 安装 Homebrew 3 安装 base lcc lcc github brew install telnet Updating Homebrew gt Downloading https homeb
  • linux tr命令用法详解

    tr命令用法详解 转自 https www cnblogs com bingguoguo articles 9188703 html tr命令可以对来自标准输入的字符进行替换 压缩和删除 它可以将一组字符变成另一组字符 经常用来编写优美的单
  • 系统架构演变历史及集群、分布式、微服务、SOA的概念区别

    文章目录 1 系统架构演变历史 1 单一应用架构 ORM 2 垂直应用架构 MVC 3 面向服务框架 SOA 4 微服务架构 1 微服务的特点 2 微服务主要解决的问题与场景 3 微服务的缺点 2 集群和分布式 微服务和soa概念和区别理解
  • 创业有哪些忠告?创业赚钱有哪些思维需要掌握?

    1 做买卖 要接到钱再干活儿 除非是你是在做自个的事 并且你确定将来会出现大收益 2 别做回款长的买卖 它对人的本性的考验太大 大部分人们在钱上的阻碍是挺大的 很多钱你是收不回家的 3 没想搞清楚运营模式 就不必自主创业 不然你将公司的铁架
  • 限制<textarea>文本框的字数长度以及设置右下角动态的字数显示

    平时无论在移动端还是PC端都会经常用到文本框 最常碰到的就是要对文本框里面的字数进行限制还有相对应的把剩余可输入的字数显示在右下角 要实现它并不是很难 直接上代码套用一下就ok了 HTML 因为我这里只用到了一小块地方 所以就直接把文本框C
  • 泛型是什么,为什么要用泛型

    泛型 泛型概述及优势 泛型 是JDK5 中引入的特性 可以在编译阶段约束操作的数据类型 并进行检查 泛型只能支持引用数据类型 集合体系的全部接口和实现类都是支持泛型的使用的 好处 统一数据类型 把运行时期的问题提前到了编译期间 避免了强制类
  • TensorFlow在MNIST中的应用-Softmax回归分类

    参考 TensorFlow技术解析与实战 http wiki jikexueyuan com project tensorflow zh tutorials mnist beginners html http www jianshu com
  • 7-2 一元多项式的乘法与加法运算 JAVA_MAP方案

    7 2 一元多项式的乘法与加法运算 30 分 题目要求 设计函数分别求两个一元多项式的乘积与和 输入格式 输入分2行 每行分别先给出多项式非零项的个数 再以指数递降方式输入一个多项式非零项系数和指数 绝对值均为不超过1000的整数 数字间以
  • PCB layout 注意事项

    过孔方面的注意事项 放置过孔时 放置过孔时 2个过孔之间的能走过一根信号线 注意美观横平竖直 过孔与焊盘的间距 PCB layout 时过孔与焊盘的间距 最好在6mil 1 524mm 以上 因为过孔一般不开阻焊 离焊盘太近会导致过孔露铜
  • BigDecimal中divide方法详解

    1 首先说一下用法 BigDecimal中的divide主要就是用来做除法的运算 其中有这么一个方法 public BigDecimal divide BigDecimal divisor int scale int roundingMod
  • 「Python 基础」异步 I/O 编程

    I O 密集型应用程序大大提升系统多任务处理能力 异步 I O 模型 一个消息循环 主线程在消息循环中不断重复 读取消息 处理消息 获取线程池 loop get event loop while True 接收事件消息 event loop
  • R语言实现个人信用风险评估(数据科学导引)

    1 案例背景 在很多国家 政府机构会密切监控贷款业务银行需要明确解释申请者的贷款申请被拒绝或者批准的原因 这种可解释性对于贷款申请者也是很重要的 在贷款申请被银行拒绝时 申请者需要知道为什么自己的信用级别不符合银行的要求 通过构建自动化的信
  • es脚本 实现字段之间进行比对

    script script source ctx source extra test lang painless query term user kimchy java BoolQueryBuilder boolQueryBuilder Q
  • 详解比较古怪的字符串拆分函数:strtok函数

    对于字符串中的标点符号 字符呀 如何能够当作分隔符来对原字符串进行分割呢 分割出来的为一段一段的字符 因此 在这里面就用到了 本文 比较古怪的字符串拆分函数 strtok函数 假设 对于这个字符串 woaini wangyijun com
  • 3.4 三级指针

    char p NULL 注 1 可以通过三级指针间接的改变二级指针的指向 2 p表示 三级指针指向的二级指针中保存的内存地址 3 三级指针做函数参数时 主调函数需要传2级指针的地址 4 n级指针可以间接修改n 1级指针的指向 下面的例子通过
  • @Component注解的作用

    Spring自带的 Component注解及扩展 Component 定义Spring管理Bean 也就是将标注 Component注解的类交由spring管理 AspectJ风格的切面可以通过 Compenent注解标识其为Spring管