falconandcatkin 2010-08-17 23:10
浏览 246
已采纳

Eclipse RCP的IApplication.EXIT_RESTART

最近帮人在写一个小型的局域网的C/S的系统。由于系统需要登录,所以我想在登录前先连接数据库,判断数据库是否连接正常。
我的数据库连接类是一个单例的DBconn类。DBconn类通过一个单例Env类获得properties类型文件的数据。我在Application类中获得DBconn的实例后,判断连接是否为空。如果为空,就修改properties类型的配置文件。
文件可以正常修改,但是由于是DBconn由于是单例,所以无法修改。
于是就想通过让系统重启一遍,让类重新加载。所以就在Application类中使用Application.EXIT_RESTART进行重启。
但是结果还是一样的。文件可以修改,但是DBConn从Env类获得的数据还是旧的数据,没有发生变化。

有什么办法可以让类重新加载吗?以便于重新获得文件中的配置信息?

  • 写回答

2条回答 默认 最新

  • 「已注销」 2010-08-18 10:44
    关注

    那你这样。你定义一个final类型的Map存放所有的单例。这就是工厂方法模式的几个单例的情况,都可以用。不过你这里就一个单例,限制好。

    这样你在你的生成DBConn的类里判断先得到的是不是空,不是空就放到Map里,可以使用了,如果空的话就修改properties文件,重新获取DBConn,放到Map里。

    关键:你的DBConn不能是final的,只要保证Map是final的就ok了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。