亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

spring?aop代理控制的操作方式

 更新時(shí)間:2022年04月24日 09:20:05   作者:o_瓜田李下_o  
spring?aop可通過(guò)參數(shù)proxyTargetProxy控制創(chuàng)建代理的方式,本文重點(diǎn)給大家介紹spring?aop代理控制的操作方式,需要的朋友可以參考下

spring aop可通過(guò)參數(shù)proxyTargetProxy控制創(chuàng)建代理的方式

proxyTargetProxy=true:強(qiáng)制使用cglib代理
proxyTargetProxy=false:目標(biāo)實(shí)現(xiàn)類實(shí)現(xiàn)了接口使用jdk,沒(méi)有實(shí)現(xiàn)接口則使用cglib

springboot 默認(rèn)代理行為

# 通過(guò)參數(shù)spring.aop.proxy-target-proxy控制
1.x:proxy-target-proxy=false
2.x:proxy-target-proxy=true

默認(rèn)代理行為

HelloService

public interface HelloService {
    String hello();
}

HelloServiceImpl

@Service
public class HelloServiceImpl implements HelloService {
    @Override
    public String hello() {
        return "hello";
    }
}

HelloService2Impl

@Service
public class HelloService2Impl {
    public String hello(){
        return "hello2";
    }
}       

CustomAspect

@Aspect
@Component
public class CustomAspect {
 
    @Pointcut("execution(* *.hello(..))")
    public void fun(){
    }
    @Before("fun()")
    public void before(JoinPoint joinPoint){
        System.out.print("before ==> ");
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        System.out.println(method.getDeclaringClass().getName()+"."+method.getName());
}

HelloController

@RestController
public class HelloController {
 
    @Resource
    private HelloService helloService;
    private HelloService2Impl helloService2;
    @RequestMapping("/hello")
    public String hello(){
        /*
        System.out.println("HelloController helloService.hello():"+helloService.hello());
        System.out.println("HelloController helloService2.hello():"+helloService2.hello());
        */
        System.out.println(helloService.getClass().getName());
        System.out.println(helloService2.getClass().getName());
        return "success";
    }
}

localhost:8080/hello,控制臺(tái)輸出:

2022-04-23 22:32:19.334 INFO 1224 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 737 ms
2022-04-23 22:32:19.638 INFO 1224 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2022-04-23 22:32:19.646 INFO 1224 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.351 seconds (JVM running for 1.774)
2022-04-23 22:32:23.915 INFO 1224 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-04-23 22:32:23.915 INFO 1224 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2022-04-23 22:32:23.916 INFO 1224 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
before ==> com.example.demo.controller.HelloController.hello
# 無(wú)論是否實(shí)現(xiàn)接口都使用cglib創(chuàng)建代理
com.example.demo.service.impl.HelloServiceImpl$$EnhancerBySpringCGLIB$$b6dcbbe7
com.example.demo.service.impl.HelloService2Impl$$EnhancerBySpringCGLIB$$589ac389

修改代理行為

application.properties

spring.aop.proxy-target-class=false

localhost:8080/hello,控制臺(tái)輸出:

2022-04-23 22:40:14.300 INFO 1237 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 935 ms
2022-04-23 22:40:14.639 INFO 1237 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2022-04-23 22:40:14.647 INFO 1237 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.594 seconds (JVM running for 2.17)
2022-04-23 22:40:17.156 INFO 1237 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-04-23 22:40:17.156 INFO 1237 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2022-04-23 22:40:17.157 INFO 1237 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
before ==> com.example.demo.controller.HelloController.hello
# helloServiceImpl使用jdk創(chuàng)建代理對(duì)象
com.sun.proxy.$Proxy56
# helloService2Impl使用cglib創(chuàng)建代理對(duì)象
com.example.demo.service.impl.HelloService2Impl$$EnhancerBySpringCGLIB$$f6915580

到此這篇關(guān)于springaop代理控制的文章就介紹到這了,更多相關(guān)springaop代理控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)

    Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)

    釘釘?shù)某霈F(xiàn)為企業(yè)節(jié)約了大量人力成本,其中也開(kāi)放了大量的外部api接口方便企業(yè)使用。本文主要介紹了Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn),感興趣的可以了解一下
    2021-11-11
  • SpringBoot自動(dòng)配置深入探究實(shí)現(xiàn)原理

    SpringBoot自動(dòng)配置深入探究實(shí)現(xiàn)原理

    在springboot的啟動(dòng)類中可以看到@SpringBootApplication注解,它是SpringBoot的核心注解,也是一個(gè)組合注解。其中@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三個(gè)注解尤為重要。今天我們就來(lái)淺析這三個(gè)注解的含義
    2022-08-08
  • IDEA 2020 2全家桶安裝激活超詳細(xì)圖文教程

    IDEA 2020 2全家桶安裝激活超詳細(xì)圖文教程

    這篇文章主要介紹了IDEA-2020-2 全家桶安裝激活超詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot用JdbcTemplates訪問(wèn)Mysql實(shí)例代碼

    SpringBoot用JdbcTemplates訪問(wèn)Mysql實(shí)例代碼

    本篇文章主要介紹了SpringBoot用JdbcTemplates訪問(wèn)Mysql實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • springboot整合rabbitmq的示例代碼

    springboot整合rabbitmq的示例代碼

    本篇文章主要介紹了springboot整合rabbitmq的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java 實(shí)戰(zhàn)項(xiàng)目之小說(shuō)在線閱讀系統(tǒng)的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)項(xiàng)目之小說(shuō)在線閱讀系統(tǒng)的實(shí)現(xiàn)流程

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)前臺(tái)閱讀后臺(tái)管理的小說(shuō)在線閱讀系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Java實(shí)現(xiàn)冒泡排序算法

    Java實(shí)現(xiàn)冒泡排序算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)冒泡排序算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 關(guān)于idea2020.3升級(jí)lombok不能使用的問(wèn)題

    關(guān)于idea2020.3升級(jí)lombok不能使用的問(wèn)題

    這篇文章主要介紹了關(guān)于idea2020.3升級(jí)lombok不能使用的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java中的異常處理機(jī)制介紹(非常全面!)

    Java中的異常處理機(jī)制介紹(非常全面!)

    異??赡苁窃诔绦驁?zhí)行過(guò)程中產(chǎn)生的,也可能是程序中throw主動(dòng)拋出的,下面這篇文章主要給大家介紹了關(guān)于Java中異常處理機(jī)制的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Java 泛型詳解(超詳細(xì)的java泛型方法解析)

    Java 泛型詳解(超詳細(xì)的java泛型方法解析)

    這篇文章主要介紹了深入理解java泛型Generic,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下,希望對(duì)你有幫助
    2021-07-07

最新評(píng)論