首页 > 其他分享 >spring 的 IOC 和 AOP

spring 的 IOC 和 AOP

时间:2022-10-11 21:45:37浏览次数:59  
标签:创建 AOP 创建对象 开发者 spring 注解 IOC

spring java企业开发框架

spring 全家桶

web: spring mvc、 spring flux

持久层:redis、magnodb、 spring data

安全性:spring security

脚手架:spring boot

微服务:spring cloud

IOC是spring 的基础,创建对象模块,AOP是基于IOC的面向切面编程

AOP处理的场景:打印日志、事务、权限处理

lombok 自动生成数据持久层的getset方法

1.1 loc
控制反转,将对象的创建进行反转,常规情况下,对象都是开发者手动创建的,使用loC开发者不再需要创建对象,而是由loC容器根据需求自动创建项目所需要的对象。

不用loC:所有对象开发者自己创建

使用loC:对象不用开发者创建,而是交给Spring 框架来完成

1、pom.xml
<dependency>
<groupid>org.springframework</groupId>

<artifactId>spring-context</artifactId>eversion>5.3.15</version>
</dependency>

基于XML和基于注解
基于XML:开发者把需要的对象在XML中进行配置,Spring框架读取这个配置文件,根据配置文件的内容来创建对象

基于注解“

1.配置类

2.注解+扫包

更简单的方式,不再需要依赖于XML或者配置类,而是直接将bean的创建交给目标类,在目标类添加注解来创建

POJO描述对象  Bean也是描述注解

自动创建对象,完成依赖注入

@compment 完成依赖注入

@Autowired 自动注人  创建对象  通过类型自动注入

@Qualifier  通过名字注入 通过注解完成名字映射

 

1.2AOP 面向切面编程

抽象化的面向对象编程     在方法相同的位置做操作就可以用面向切面编程

AOP必须要有接口   底层使用动态代理机制

将相同的代码提取出来,解耦合

例如在日志处理时:将日志处理的代码抽象出来,计算方法中只保留核心   日志处理代码与计算方法代码的解耦合

对象是通过类来创建的

 

 

 

 @Aspect  注解声明是切面

 

自动扫包,开启自动生成动态代理

 

AOP实现动态代理两种模式:①普通类使用 Gclit实现,②针对某一接口使用原生动态代理(原生动态代理实现Pxory类)

 

标签:创建,AOP,创建对象,开发者,spring,注解,IOC
From: https://www.cnblogs.com/xinger123/p/16782689.html

相关文章

  • 基于AOP的事务管理
    /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里给大家......
  • Spring Batch BATCH_JOB_INSTANCE 表不存在错误
    在运行SpringBatch项目的时候,提示上面的错误信息:java.sql.SQLSyntaxErrorException:(conn=12433)Table'usrealestate.BATCH_JOB_INSTANCE'doesn'texist  ......
  • springboot Druid后台监控功能和过滤
    @ControllerpublicclassDruidConfig{@ConfigurationProperties(prefix="spring.datasource")@BeanpublicDataSourcedruidDataSource(){return......
  • Springboot项目打war,jar包流程
    Springboot项目打jar包流程1、在POM中确定MAVEN打包插件已经引入<build>   <plugins>       <plugin>           <groupId>org.springframework.b......
  • SpringBoot异步调用
    在程序执行时候还有一个瓶颈,串行执行,可以通过使用不同线程类快速提升应用的速度。要启用Spring的异步功能,必须要使用@EnableAsync注解。这样将会透明地使用java.util.conc......
  • springboot2 集成redis
    #redissettingsspring.redis.database=0spring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.password=spring.redis.timeout=5000msspring.redis.let......
  • SpringBoot学习-(二十三)SpringBoot发送邮件
    基本步骤:添加pom文件依赖配置邮件相关书写代码测试添加pom文件依赖<!--springbootmail--><dependency><groupId>org.springframework.boot</groupId><artifactId......
  • SpringBoot学习-(二十四)SpringBoot配置错误页面(404、500等)
    基本步骤:添加错误页面配置书写对应action处理映射添加错误页面配置packagecom.ahut.config;importorg.springframework.boot.context.embedded.ConfigurableEmbeddedServl......
  • Mybatis通用Mapper(springboot环境下使用)
    ​​mapper3通用接口大全​​​:​​https://gitee.com/free/Mapper.git​​1、添加pom文件依赖<!--mapper--><dependency><groupId>tk.mybatis</groupId><artifact......
  • ElasticSearch学习 - (五)SpringBoot集成ElasticSearch5.X
    步骤:添加pom文件依赖配置ElasticSearch使用ElasticSearch的java客户端一、添加pom文件依赖<properties><elasticsearch.version>5.6.4</elasticsearch.version></pr......