怎样的SSH2架构下创建单例,这个单例我要实现下拉框内容(存放与数据库)的缓存,包括spring如何配置。
解决方案 »
- 问一个编程思路问题,望高手解答。
- 一个SSH结构的一对多问题【菜鸟提问】请大家帮帮忙急。。。。。
- 急请高手,,,如果把数据库的数据导入到excel里?
- 这个jsp应如何设计
- 关于Ajax响应问题
- eclipse中怎样将类文件的输出到工程文件夹以外的地方。
- request.getRequestDispatcher()api里说:参数是目的资源的路径,并不限制excel文件。为什末就不通呢?
- 请问,Tomcat,能够胜任省级银行系统的WEB服务器吗?
- jdbc for sql server 2000的驱动程序在哪儿可以找到?
- ssm项目第一次发布阿里云服务器 登录遇到302
- 如何设置Connection的ResultSetMetaDataOptions属性?
- 运行这个JAVA控制摄像头的程序
反正我就告诉你spring的bean默认就是单例bean
public class A {
private static A a;
private A(){
}public A getInstance(){
if(a == null)
a = new A();
return a;
}
}
public class ParaManager
{
BaseDAO dao;
public BaseDAO getDao() {
return dao;
} public void setDao(BaseDAO dao) {
this.dao = dao;
} private static ParaManager instance = null;
List<TCfgPara> paraList;
Map<String,String> paraMap;
@SuppressWarnings("unchecked")
private ParaManager(){
paraList = dao.query("from TCfgPara");//28行,报错的地方
paraMap = new HashMap();
for(TCfgPara curPara:paraList){
paraMap.put(curPara.getCode(), curPara.getValue());
}
}
@SuppressWarnings("unchecked")
public String getPara(String code){
return paraMap.get(code);
}
public static ParaManager getInstance(){
if(instance == null){
instance = new ParaManager();
}
return instance;
}
}<bean id="paraManager" class="com.bc.common.util.ParaManager"
scope="singleton">
<property name="dao" ref="dao" />
</bean>tomcat启动时报错
Caused by: java.lang.NullPointerException
at com.bc.common.util.ParaManager.<init>(ParaManager.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:96)
private Singleton(){};
private static Singleton instance = new Singleton();
public static Singleton getinstance(){
return instance();
}
}
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
//这个地方是关键
private static ApplicationContext content=new ClassPathXmlApplicationContext("applicationContext.xml");; public static void getnewsTypeById(HttpServletRequest request) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日hh点mm分");
Date date=new Date();
String d=sdf.format(date);
System.out.println(d);
//这个地方是关键
BookService b = (BookService) content.getBean(
"BookServiceImpl");
List<BooksLordType> list = b.getAllBooksLordType();
request.setAttribute("BooksLordTypeList", list);
}
现在解决办法:在单例中构造方法中,通过SpringContextUtil获取BaseDAO,在查询出缓冲数据,放入HashMap