类的方法内调用如何让切面生效?以及一些new对象如何调用注入的单例对象?

一些编程上的小技巧。

1. 方法内调用如何让切面生效?

我们知道一个切面作用在整个类的外围。如果类的内部方法相互调用如何让缓存生效呢?这里可以使用的一个小技巧是通过将当前类的代理类注入当前类中,在使用的时候即可使用生成的代理类了。如下:

@Service
class DemoService {


    @Autowired
    DemoService  proxy;


   @Cachable(value="cache")
   public String get(String arg) {
       return "hello" + arg;
   }
 
   public String process(String arg) {
   
       String result = proxy.get(arg);
       return "hi," + result;
   } 

}

2. 在我们的对象中经常new对象 如果new出的对象一直传递一个单例对象会很不优雅。通过单例模式 利用好注入的单例。


/**
 *
 *实现方式 一种是继承InitializingBean 接口 设置一下
 * 另外一种方法可以使用 @PostConstruct 注解
 *
 *
 */
@Service
class DemoService {

   

   private static DemoService instance;

   public static DemoService getInstance() {
       return instance;
   }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值