一些编程上的小技巧。
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;
}
}