首页 > 其他分享 >使用注解实现spring核心

使用注解实现spring核心

时间:2023-09-13 11:05:50浏览次数:35  
标签:增强 定义 spring Bean 核心 注解 属性

使用注解实现spring IOC

注解方式

  • 步骤
  1. 使用注解定义Bean
  • 通过注解实现不同层级Bean
  • @Controller :用于标注控制器类
  • @Service :用于标注业务类
  • @Repository :用于标注DAO类
  • @Component :定义非以上所属层级的类
  1. 使用注解实现Bean的注入
  • @Autowired //相当于xml文件配置中的:<property name="userDao" ref="userDao"/>
按类型匹配的方式为属性自动装配合适的依赖对象,
即容器会查找和属性类型相匹配的Bean组件,并自动为属性注入
可以使用@Qualifier("")指定Bean名称注入
  1. 需要对包含注解类的包进行扫描,代码如下,如果有多个包用逗号隔开
<context:component-scan base-package="com.lx.service,com.lx.dao"/>

Java标准注解

  • 区别在于实现Bean注入的时候是通过Java本身自带的注解@Resource注解实现,
  • 他是基于属性名进行匹配,如果没有找到相对应得属性名,则按照类型进行匹配

总结

使用注解主要是代替xml文件的注入,控制反转这一过程

使用注解实现spring AOP

  • @Aspect:定义切面 ;非spring框架不能对类定义Bean,需手动定义
  • 手动定义Bean2种方式
  1. xml文件中定义bean标签
  2. 添加@Component注解(spring会自动配置Bean);需对注解进行扫描
  • 定义切点
@Pointcut("execution(* com.lx.service.impl.*.*(..))")
public void pointCut() {
}
  • 或在通知注解中value属性手动添加
  • 实现增强
  • 增强的注解形式

抛出异常增强

<aop:before/>

@AfterThrowing

前置增强

<aop:before/>

@Before

后置增强

<aop:after-returning/>

@AfterReturning

环绕增强

<aop:around/>

@Around

最终增强

<aop:after/>

@After

  • 最后只需要在配置文件中配置
<aop:aspectj-autoproxy/>
  • 因为@Aspect并不是spring包的,需要手动指定

标签:增强,定义,spring,Bean,核心,注解,属性
From: https://blog.51cto.com/u_16260410/7452526

相关文章

  • RocketMQ-(8-1)-EventBridge-EventBridge 核心概念
    RocketMQEventBridge核心概念理解EventBridge中的核心概念,能帮助我们更好的分析和使用EventBridge。本文重点介绍下EventBridge中包含的术语:EventSource:事件源。用于管理发送到EventBridge的事件,所有发送到EventBridge中的事件都必须标注事件源名称信息,对应CloudEvent事件体中的s......
  • SpringBoot+Mybatis三级查询
    一、概述现有一个需求:查询视频详情。对应三张表,视频表、章节列表、集列表。一个视频对应多个章节,一个章节对应多集视频。请根据视频id查询视频详情,并把视频的章节列表,章节中的集列表都带出来。SpringBoot和MyBatis-plus说明:<!--根模块继承了SpringBoot,子模块也跟着继......
  • Spring HTTP Invoker
    参考:https://blog.csdn.net/asdluoliu/article/details/112847699概念SpringHTTPInvoker一种JAVA远程方法调用框架实现,原理与JDK的RMI基本一致,所以我们先跟其它JAVA远程方法调用实现做下简单比较。RMI:使用JRMP协议(基于TCP/IP),不允许穿透防火墙,使用JAVA序列化方式,使用于任何......
  • springboot日志配置
    配置文件使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了)在项目的resources目录下创建一个【logback-spring.xml】日志配置文件名称只要是一logback开头就行,测试使用log.xml并不会生成日志。合法名称:logback.xml、logback-spring.xml备注:要配置l......
  • SpringBoot项目启动报错:An incompatible version [1.1.22] of the Apache Tomcat Nati
    问题解释:“安装了不兼容的ApacheTomcat原生库版本[1.1.22],而Tomcat需要版本[1.2.14]”解决方法:①打开网页 http://archive.apache.org/dist/tomcat/tomcat-connectors/native/②        ③        ④     ......
  • 【Spring Boot】Thymeleaf 模板引擎
     Thymeleaf组成:标签+表达式,标签是Thymeleaf的语法结构,而表达式就是语法里的内容实现  pom.xml添加依赖包<!--模板引擎Thymeleaf依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • Spring Boot构建web项目01
    配置:破解版IDEA2019.3.3Maven--3.6.3java--1.8(8)jdk--8  打开IDEA,new一个project,选择SpringInitializr 改写maven管理和java版本8 选择web项目    添加指定父级工程信息和java版本依赖<modelVersion>4.0.0</modelVersion><parent><gro......
  • Controller注解
    @RestController: 之前解释过,@RestController=@Controller+ResponseBody。加上这个注解,springboot就会吧这个类当成controller进行处理,然后把所有返回的参数放到ResponseBody中@RequestMapping: 请求的前缀,也就是所有该Controller下的请求都需要加上/product/product-inf......
  • MT8168安卓核心板_MTK8168核心板规格参数
    MT8168核心板是一款高度整合、高效能、低耗电的应用智能模块,专为平板电脑、电子阅读器、智能家居和物联网应用等嵌入式设备提供出色的多媒体体验。该处理器采用先进而高效能的12nm制程技术,结合了四核ArmCortex-A53MPCoreTM中央处理器和主频可达2GHz的ArmNEON引擎,以及主频可达80......
  • springcloud日常学习
    一、 Feign客户端接口调用1. 分析与介绍   之前的消费者调用服务提供者是通过RestTemplate + Ribbon组合实现负载均衡进行调用   如果在消费者客户端能够通过面向接口编程的思想去实现对服务提供者进行调用,就更加接近软件工程的开发思想,Feign就可以实现。微服务之间的调......