我正在尝试学习各种技术 - 希望使用HTML5和Jquery做一些UI工作 在UI中,我正在调用生成JSON输出的RESTFUL webservice(Jersey)
在我的网络服务中 - 我已经存根应该来自数据库的数据(mysql)
现在我想学习Spring JDBC模板(而不是使用普通的JDBC)
所以我的问题是在一个托管我的RESTFUL webservice的web应用程序中使用spring(只有spring jdbc而不是spring mvc)
我想使用spring jdbc模板 - 所以编写了一个spring xml文件,我正在创建必要的配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="....."
xsi:schemaLocation="....">
<bean id="examDAO" class="com.examscripts.mockexam.repository.ExamRepositoryImpl">
<property name="ds" ref="ds" />
</bean>
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/mockexam" />
<property name="username" value="xxx" />
<property name="password" value="yyy" />
</bean>
要加载这些,我在web.xml中添加了以下内容:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在tomcat启动时我可以看到文件已加载:
从类路径资源....
加载XML bean定义
现在我的问题是在我的服务层,我需要与DAO层(jdbc)进行通信 - 必须使用以下内容创建实际的bean:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
// instantiate our spring dao object from the application context
ExamRepositoryImpl impl= (ExamRepositoryImpl)ctx.getBean("examDAO");
我对春天来说是全新的,谷歌搜索似乎总是显示春季mvc网络应用程序或独立的春天示例 - 我的案例是一个Web应用程序减去spring mvc但使用spring jdbc模板
任何指针?
答案 0 :(得分:0)
从类路径资源....
加载XML bean定义
你走在正确的轨道上。 Spring正在加载您的XML文件(当您部署应用程序时)并实例化您声明的bean。为org.springframework编写日志以获取更多详细信息。
现在我的问题出在我需要通信的服务层 使用DAO层(jdbc) - 必须使用创建实际的bean 像这样的东西:
不,绝对不是。使用像Spring这样的依赖注入框架的全部目的是避免编写这样的代码。
在服务类中声明一个以DAO为参数的setter。
public void setExamDAO(ExamDao examDao) {
this.examDao = examDao;
}
在XML文件中为服务类添加新的XML bean定义,并创建一个在DAO中连接的新<property>
:
<bean id="yourservice" class="com.foo.YourServiceClass">
<property name="examDao" ref="examDAO"/>
</bean>