day06 Spring AOP

这篇具有很好参考价值的文章主要介绍了day06 Spring AOP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DI注解

**作用:**解决使用xml配置繁琐的问题

该注解和使用配置文件一样分成两类进行注入:字段注入或属性注入,注入bean(取代xml中的ref)

1.@value注解

使用value注解给属性进行赋值,只能使用于八大基本类型和常量类型/String/Integer…

@value("小小")
private String name;

2.@Autowried,常用

给对象进行赋值或者取对象的值

@Autowired
private StudentServiceImpl studentService;

或者

@Autowired
    public void setStudentService(StudentServiceImpl studentService) {
        this.studentService = studentService;
    }

Auto注解适用于自定义类型或者第三方的类型(application),可以贴在属性上面或者setter方法上面,只使用一种方法就可以

Autowried注意细节:

使用该注解与aop进行连用的时候,贴的类型应该使用接口的类型,否则会和aop创建的代理类发生冲突,若想强制使用就在spring.xml中添加CGLIB

 <aop:aspectj-autoproxy proxy-target-class="true"/>

1.可以自动将属性或者字段需要的对象找出来,并注入到属性或者字段上

2.可以贴在属性或者setter方法上面

3.可以注入spring的内置对象,不仅限于自己

4.可以设置@Autowired(required=false)解决对象找不到的错误

5.Autowrited找对象的方式

​ 先找这个的对象的类型,如果找到了这个类型,就注入

​ 若找到多个相同的类型,再根据名字去找,若根据名字没有找到就报错

​ 可以通过设置qualifier(“id”)+@Autowired()通过类型和id进行寻找

3.@resourse

作用和Autowried差不多

需要添加依赖

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>
@Resource
private StudentServiceImpl studentService;

和Autowried的作用一样,但是有以下差别

1.他是javax内置的注解

2.注解的这个必须要找到这个对象,否则报错

3.找对象的方式

​ 先通过名字去找,找到就注入

​ 有个多个名字,就通过类型进行寻找,若有多个类型就要报错

​ 使用Resource(name=“id”)指定名字去寻找

IOC注解(贴在实现类上面)

**作用:**解决使用xml繁琐配置的方式创建对象

前提:使用IOC注解需要给spring,xml配置解析器

<!--配置ioc的解析器,可以添加多个-->
    <context:component-scan base-package="解析的包1,解析的包2"/>

四种注解,本质上的作用就是一样的,可以写value值

**@Repository:**贴在持久成上面,DAO实现类

@Service:贴在业务层的实现类上面

**@Controller:**贴在控制层上面(springMVC)

**@Component:**若以上不满足就使用这个,一般使用与工具类

例子:

@Repository
public class StudentDAOimpl implements IStudentDAO {....}
bean中初始化和销毁属性的注解

**@Sope:**设置bean的作用域,贴在类上面

**@PostConstruct:**初始化操作,贴在方法上面

**@PreDestroy:**销毁操作,贴在方法上面

代理模式

控制事务

以前存在的问题:

​ 1.代码结构重复,维护成本大

​ 2.责任不分离,业务层面关系到了事务管理,日志管理等等

代理模式的作用

在客户端和真实对象之间起到中介的作用,使各个模块实现责任分离

代理模式的分类

**静态代理:**在程序运行的前,由我们自己创建代理类

**动态代理:**在程序运行的时候由JVM反射生成,类与对象不由我们进行创建

静态代理的实现

​ 在service层的代理类实现类都是实现同一个service接口,使用代理类实现处理事务的功能,使用实现类进行数据插入的操作

​ 实现同一个接口的作用:方便管理,有约束的功能

文章来源地址https://www.toymoban.com/news/detail-458999.html

到了这里,关于day06 Spring AOP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring 配置方案(注解的使用)

    替换: 1、注入类 (1)@Component 1、含义 将注解所修饰的类,注入spring容器 2、位置 使用在类的前面 3、语法 @Component(value = “id”) 如果省略 value = “id” 默认注入的id为类的名称且首字母小写 4、注意 不可以单独使用 在xml中配合 context:component-scan base-package=“”/context:compone

    2024年02月12日
    浏览(28)
  • day06 Spring AOP

    DI注解 **作用:**解决使用xml配置繁琐的问题 该注解和使用配置文件一样分成两类进行注入: 字段注入或属性注入,注入bean(取代xml中的ref) 1.@value注解 使用value注解给属性进行赋值,只能使用于八大基本类型和常量类型/String/Integer… 2.@Autowried,常用 给对象进行赋值或者取对象的值

    2024年02月06日
    浏览(16)
  • 常用的 Spring Boot 注解及其作用

    Spring Boot 提供了许多注解来简化开发,并帮助开发者在 Spring 应用中实现各种功能。以下是一些常用的 Spring Boot 注解及其作用: @SpringBootApplication : 作用:用于标识主启动类,通常位于 Spring Boot 应用的入口类上。 功能:该注解整合了三个常用注解: @Configuration 、 @EnableAut

    2024年04月25日
    浏览(49)
  • 深入理解Spring @RequestBody注解的用法与作用

    当我们使用 Spring Boot 框架处理客户端提交的 HTTP 请求时,常常需要获取请求参数并将其转换为相应的 Java 对象。@RequestBody 注解可以帮助我们实现这个目标,它用于从 HTTP 请求体中获取请求参数,并将其转换为指定的 Java 对象。本篇博客将介绍 @RequestBody 注解的基本用法和注意

    2024年02月15日
    浏览(36)
  • Spring02-Spring注解的使用、基于注解的IOC、纯注解配置、整合Junit、AOP入门、基于配置文件的AOP、切入点表达式、基于配置的文件环绕通知

    学习基于注解的 IOC 配置,即注解配置 和 XML 配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。 关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯 , 所以这两种配置方式我们都需要掌握。 把 Spring 的 xml 配置内容改为使用

    2024年02月03日
    浏览(63)
  • 【Spring】使用@Bean和@Import注解配置Bean,与Bean的实例化

    目录 1、bean是什么 2、配置bean 2.1、使用@Bean注解配置Bean 2.2、使用@Import注解配置Bean  3、实例化Bean         在 Spring 中,Bean 是指由 Spring 容器管理的对象。Spring IOC 容器负责创建、配置和管理这些 Bean 对象的生命周期。Spring IOC 容器会管理应用程序中的组件,并通过依赖注

    2024年04月15日
    浏览(22)
  • Spring CORS 跨域使用与原理(@CrossOrigin注解,Java配置类方式,xml方式)

    出于安全原因,浏览器禁止AJAX调用当前源之外的资源。 跨域资源共享(CORS)是由大多数浏览器实现的W3C规范,它允许您以一种灵活的方式指定授权哪种跨域请求,而不是使用一些不太安全、功能不太强大的hack(如IFrame或JSONP)。 Spring Framework 4.2 GA为CORS提供了一流的开箱即用支持

    2024年02月08日
    浏览(44)
  • Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 在main创建webapp,然后创建index.jsp进行测试,在访问之前需要进行一个设置,否则springboot是找不到jsp页面的 修改jsp无需重启应用 数据库访问框架:hibernate、jpa、mybatis【主流】 SpringBoot(微框架) = Spring(工厂) + SpringMV

    2024年02月05日
    浏览(35)
  • @Autowired和@Resource注解之间的关系区别,Bean的作用域和生命周期,Spring的执行流程

    目录 一. @Autowired 和 @Resource 注解 二. Bean的作用域  1. singleton(单例模式) 2. prototype(原型模式)(多例模式) 3. 请求作用域:request 4. 会话作用域:session 三. Spring 的执行流程 四. Bean 的生命周期   1. 实例化  2. 设置属性  3. Bean 初始化      3.1 执行各种各种 Aware 通知;     

    2024年02月04日
    浏览(49)
  • @GrpcServise 注解的作用和使用

    转载请注明出处: 在没有使用 @GrpcServise 注解编写服务端时,我们通常需要自定义 Server 以及端口,包括 start,stop ,注册service 方法等等,开发比较复杂。 使用 @GrpcService 则可以省去 自定义server,端口,包括start,stop方法等等,可以直接去实现我们需要的 grpc 方法,并

    2024年02月05日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包