自己写了一个小demo准备玩玩的。flex+spring+ibatis 结果刚开发,就碰到了个困难,试了好久,始终不如意。我想把spring配置文件放到WEB-INF下的conf文件夹里。把一些bean的配置文件放到WEB-INF下的beanConf文件夹里. 小程序测试的时候,发现BookController里的bookService总为空。试了很多方法,始终不知道如何解决。请帮忙,贴出代码:目录结构:
[img]http://dl.iteye.com/upload/attachment/607466/2dca6312-30e5-334a-b161-bbd01dfc1319.jpg[/img]
web.xml
demo_applicationContext.xml
BookController.java
BookService.java
每次BookController.java里的addBook() 里的bookService都是null,
工程在附件里,求帮助
[img]http://dl.iteye.com/upload/attachment/607466/2dca6312-30e5-334a-b161-bbd01dfc1319.jpg[/img]
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>FirstFlex</display-name>
<description>BlazeDS Application</description>
<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
</context-param>
<!-- 加载Spring文件配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/conf/demo_applicationContext.xml,/WEB-INF/beanConf/*.bean.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!-- for WebSphere deployment, please uncomment -->
<!--
<resource-ref>
<description>Flex Messaging WorkManager</description>
<res-ref-name>wm/MessagingWorkManager</res-ref-name>
<res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
-->
</web-app>
demo_applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 数据源配置 -->
<bean id="dataSource_config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:dataBaseContext.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${datasource.driverClassName}</value>
</property>
<property name="url">
<value>${datasource.url}</value>
</property>
<property name="username">
<value>${datasource.username}</value>
</property>
<property name="password">
<value>${datasource.password}</value>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>/WEB-INF/classes/sqlmap-config.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
<!-- 业务指标定义 -->
<bean id="bookController"
class="com.crud.controller.BookController">
<property name="bookService"
ref="bookService">
</property>
<!-- <property name="sybasejdbcTemplate" ref="sybasejdbcTemplate"/> -->
</bean>
<bean id="bookService"
class="com.crud.service.impl.BookServiceImpl">
<property name="sqlMapClientTemplate">
<ref bean="sqlMapClientTemplate" />
</property>
</bean>
</beans>
BookController.java
package com.crud.controller;
import java.util.List;
import java.util.UUID;
import com.crud.model.Book;
import com.crud.service.BookService;
import com.crud.service.impl.BookServiceImpl;
public class BookController {
private BookService bookService;
public List<Book> findBooks(){
return bookService.findBook();
}
public String addBook(Book book){
//bookService = new BookServiceImpl();
System.out.println("addBook");
System.out.println(bookService);
book.setId(UUID.randomUUID().toString());
String temp = bookService.addBook(book);
System.out.println(bookService);
return temp;
}
public void updateBook(Book book){
}
public void deleteBook(Book book){
}
public BookService getBookService() {
return bookService;
}
public void setBookService(BookService bookService) {
this.bookService = bookService;
}
}
BookService.java
package com.crud.service.impl;
import java.util.List;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import com.crud.model.Book;
import com.crud.service.BookService;
public class BookServiceImpl implements BookService {
private SqlMapClientTemplate sqlMapClientTemplate;
public String addBook(Book book) {
System.out.println(sqlMapClientTemplate);
sqlMapClientTemplate.insert("addBook",book);
return "1";
}
public void deleteBook(Book book) {
}
public List<Book> findBook() {
List<Book> list = sqlMapClientTemplate.queryForList("bookInfo");
return list;
}
public String updateBook(Book book) {
return null;
}
public SqlMapClientTemplate getSqlMapClientTemplate() {
return sqlMapClientTemplate;
}
public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
}
}
每次BookController.java里的addBook() 里的bookService都是null,
工程在附件里,求帮助