非常に下手な万用汎用サービスの実現
1705 ワード
書き終わったらもう吐いた
実行時のClassを取得する必要がある
なんかできるような気がして・・・
汎用DAOの書き方参照
まったくだめだ
人も万用実現ではない
七筋八脈を通すことを求めます~
@Service
public class PubManager<T, PK extends Serializable>{
private SessionFactory sessionFactory;
@Autowired
private PubManagerImpl<T, PK> mgr;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public PubManagerImpl<T, PK> getI(Class<T> c){
if(null == mgr.getDAO()){
mgr.setDao(new HibernateDao<T, PK>(sessionFactory ,c));
}
return mgr;
}
}
@Service
@Transactional
public class PubManagerImpl<T, PK extends Serializable> extends AbsManager<T, PK> implements absMgr<T, PK> {
private HibernateDao<T, PK> dao;
@Override
public HibernateDao<T, PK> getDAO() {
return dao;
}
public void setDao(HibernateDao<T, PK> dao) {
this.dao = dao;
}
}
Controller
@RequestMapping("/xxx/xxxx")
public class XxxxXxxxXxxController {
@Autowired
private CodeManager codeManager;
@Autowired
private PubManager<XxxxxXxxxXxxx, String> pubManager;
@RequestMapping("allXxx")
public @ResponseBody Page<XxxxxXxxxXxxx> logs(){
return pubManager.getI(XxxxxXxxxXxxx.class).searchByPage();
}
実行時のClass
なんかできるような気がして・・・
汎用DAOの書き方参照
まったくだめだ
人も万用実現ではない
七筋八脈を通すことを求めます~