我写了一个包装Ehcache的类EhcacheWrapper,加入多线程控制,代码如下
@service
public class EhcacheWrapper{
public Element get(String cacheName, String key){......}
public void put(String cacheName, String key, Object value){......}
//多线程控制,代码略
}
我在一个controller中自动装配EhcacheWrapper,比如
public class GetLabelServiceImpl{
@Autowired
private EhcacheWrapper ehcacheWrapper;
//代码略
}
我在其他controller中还能@Autowired EhcacheWrapper吗?
我觉得@Component默认的scope是singleton,只有一个实例。如果在两个类中都@Autowired EhcacheWrapper,是不是两个类都调用同一个bean呢?EhcacheWrapper有多线程控制,这样做是不是有什么问题?应该怎么处理比较好?
Pemahaman anda betul Ia boleh dihimpunkan beberapa kali, tetapi contoh yang sama disuntik, jadi anda perlu mengendalikan konkurensi sendiri
Seperti yang @chiyx katakan, kedua-duanya
Controller
memanggil contoh yang samaMengikut kelas
EhcacheWrapper
yang anda tulis (tanpa pembolehubah global), mengikut kod yang anda berikan, tiada syarat perlumbaan, jadi tidak akan ada masalah konkurensi, melainkan terdapat persaingan dalamput
Kaedah Syarat Sebaliknya, jika terdapat syarat pertandingan dalamput
, ia sebenarnya tidak ada kena mengena sama ada kelasEhcacheWrapper
adalah satu