NutzCN Logo
精华 读取项目外的dao.js等配置文件怎么写?
发布于 2985天前 作者 老司机 1960 次浏览 复制 上一个帖子 下一个帖子
标签:

项目要求,如dao.js等包含客户个性化配置的文件,放在项目外面,比如跟tomcat文件夹同级,这样要更新系统时,只要换一个war包就行了,不需要让用户重新输入数据库用户名密码?这样的话MaiModule的IocBy该怎么写?

12 回复

环境感知,nutz-onekey里面就有

自行实现IocLoader接口,或继承现成的实现,从火星加载都行

@wendal 还是没太懂,我在Mainsetup里面new JsonLoader(js文件路径),就ok了????

继承JsonLoader

话说, 数据库配置信息一般在properties文件里,改dao.js的位置有什么用

@wendal 很有道理!!!但是问题又来了,我如何动态的获取一个dao,就是用户和密码都是后来给的,然后再把这个dao交个ioc管理?整个环境都是nutz

dataSource = new SimpleDataSource();
dataSource.setJdbcUrl("jdbc:gbase://172.16.1.205:5258/tjbb_cms");
dataSource.setUsername("gbase");
dataSource.setPassword("gbase20110531");
dataSource.setDriverClassName("com.gbase.jdbc.Driver");

dao = new NutDao(dataSource);

这是我之前用的方法,动态获取的dao,然后怎么把他塞到ioc里面?

((Ioc2)ioc).getIocContext().put("app", "dao123", new ObjectProxy(dao));

@wendal 这个是mvc环境,但是dao是后来给的,你觉得是用sSimpleDataSource好呢还是DaoUp好呢?

@qq_c1bab051 如果该dao是临时用的话,simpledatasource,长期用的话daoup

@wendal 不支持postgresql?

2016-10-26 9:42:12.530 WARN [localhost-startStop-1] SimpleDataSource is NOT a Connection Pool, So it is slow but safe for debug/study
2016-10-26 9:42:12.531 ERROR [localhost-startStop-1] Error happend during start serivce!
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:6443/dcm
	at org.nutz.lang.Lang.wrapThrow(Lang.java:182)
	at org.nutz.dao.jdbc.Jdbcs.getExpert(Jdbcs.java:113)
	

我显示不设置drivername,后来加了

source.setDriverClassName("org.postgresql.Driver");

然并卵

@qq_c1bab051没加驱动?Class.forName试试

@wendal 嗯解决了,我觉得问题是这样的,因为我现在做的是二次开发,人家的数据库信息放在他特定格式的xml文件里,还加密了,所以我要用它的数据库,就打算在mainsetup的时候读xml并解密,然后生成dao再塞到ioc里面(为啥不生成自己的dao.js?因为他有个功能是前台修改数据库信息,他可以把修改后的信息塞到他自己的xml文件里,而我现在还不能同步修改dao.js,所以就打算在每次服务启动的时候新建一个dao。)因为是在mainsetup里面运行的,此时tomcat并没有完全启动,所以导致有的class没有读进来,导致driverclass not find,在new simpledatasource之前,写上class.forname就解决了,而且tomcat的读取顺序有点迷……我用mysql的时候并没有这个问题,所以没往这方面想

添加回复
请先登陆
回到顶部