标签引入和数据库连接问题
Spring框架还真是遇到了不少问题,不过有百度和谷歌在,你的问题已经被别人解决了。
昨天晚上遇到了两个问题,其中还隐含着另外一个问题,容我一一道来
在编写spring-beans.xml文件时,引入了:
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
的属性连接"="">http://www.springframework.org/schema/context/spring-context.xsd"的属性连接
但是在<context:property-placeholder location="jdbc.properties"/>处,eclipse显示,该标签不可用,也就是说该标签在上述的属性连接中没有起作用,于是继续测试,还是不好使,上网查了一下,大部分说加一下上面的属性连接即可,但是我加过之后还是不好使,有另外一个问题就是缺少schema里的
spring-context.xsd,spring-tx.xsd这两个文件,前一个是spring的上下文,后面一个是spring的事务管理,
于是照着网上的方法打开eclipse window-->preforences-->XML--->XML Catalog,
点击一下,右边会出现XML Catalog Entries (也就是XML catalog的入口),里面有两个大目录如下:
一个是user Specified Entries:用于加入DTD约束文件和XDS类型的约束文件(就是以.xsd结尾的)
下面一个plugin Specified Entries应该是eclipse自己增加的文件,而上面的是缺失的,
当我把myeclipse打开后导入项目,依然不好使(其实是我的数据库连接配置文件的密码写错了,当时没有发现),JdbcTemlate在spring的XML里没有被注入,提示找不到数据源。
windows--->preforences--->MyEclipse--->Files and Editors--->XML--->XML Catalog。
单击一下即可出现上图,在user Specified Entries那一栏里有个.xsd的约束文件前面有个红叉,表示该约束文件可能不好使了,于是选中,move掉,点击上图的add按钮会出现下面的界面:
Location有三种写法:
1在workspace中选择要引入的文件,
2.在FileSystem(也就是本机)中选择要引入的文件。
3.手动敲入需要引入文件的url,eclipse应该会在联网的情况下自动下载该文件(没有用过,推荐第二种)
4.如果本地没有要引入的文件的话,上网下载一份到本地即可。
5.Key Type选择:URI,Key会自动补全。
6.我的测试是eclipse最新版,myeclipse8.6.如有出入请参照具体版本。
mysql的数据库连接文件的秘密一直没改,所以一直不好使,引入JUnit测试spring的dao层setter注入一直获取不到JdbcTemplate对象,于是大晚上的调试,浪费了大量的时间。
当我回头把密码还原成错误的样子,单元测试显示的错误为:
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
.........
.......
在网上搜的答案是root权限问题,于是再次思考中,他们的解决方案有
1.进入DOS界面将root密码修改一下。
2.将localhost改为本机地址。
3.引入上述.xsd文件(一般就是依赖主人问题了)
在这里这个异常是因为连接数据库的配置问题(比如说密码错误,没有驱动,url写错了等),这会导致Jdbctempalate获取不到对象。在ServiceDao(业务层)中注入失败。
总结如下:
1.需要引入标签时记得将<beans。。。>里的约束文件添加好,如果eclipse里没有的话就手动windows进入preforences里自己手动引入。
2.在引入之后可能不会当时就好使,需要关闭eclipse或者myeclipse重新启动。当时我的电脑没有联网,不知道是不是这个原因现在估计应该不是了。
3.Spring的依赖注入在数据库连接方面会出现JDBC Connection被拒绝的情况,这会导致注入失败,返回的注入对象为null,注意检查连接配置文件。
4.坚定完毕。