首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

springJdbc+springMVC跟dwr以及servlet的整合

2012-10-06 
springJdbc+springMVC和dwr以及servlet的整合现在springMVC的整合吧第一步:web.xml的配置?servletservl

springJdbc+springMVC和dwr以及servlet的整合

现在springMVC的整合吧

第一步:web.xml的配置

?

<servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>? 

???? ?dwr的配置()

?<servlet>? ?? <servlet-name>dwr-invoker</servlet-name>?? <servlet-class> org.directwebremoting.spring.DwrSpringServlet?</servlet-class></servlet><servlet-mapping>? <servlet-name>dwr-invoker</servlet-name>? <url-pattern>/dwr/*</url-pattern></servlet-mapping>

?

第二步:WEB-INF/spring-servlet.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" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- 定义一个视图解析器 --><bean id="viewResolver"p:suffix=".jsp" /></beans>

?

第三步: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" xmlns:context="http://www.springframework.org/schema/context"xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-3.0.xsd   http://www.directwebremoting.org/schema/spring-dwr        http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 激活spring的注解. --><context:annotation-config /><!-- 扫描注解组件并且自动的注入spring beans中. 例如,他会扫描@Controller 和@Service下的文件.所以确保此base-package设置正确. --><context:component-scan base-package="net.rytong" /><!-- 配置注解驱动的Spring MVC Controller 的编程模型.注:次标签只在 Spring MVC工作! -->     <mvc:annotation-driven />     <mvc:default-servlet-handler default-servlet-name="IndexServlet"/>     <!-- ********************************************** -->    <!-- dwr启用 annotation 配置模式 --><dwr:configuration>   <dwr:convert type="bean" /></dwr:configuration><!-- pring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类 --><dwr:annotation-config /><!-- 开启debug --><dwr:controller id="dwrController" debug="true" />    <!-- ********************************************** --> <!-- 导入jdbc的配置文件 --><import resource="jdbc-context.xml" /></beans>

?

第四步:数据源jdbc-context.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"       xmlns:p="http://www.springframework.org/schema/p"        xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd   "><!-- <context:property-placeholder location="classpath:db.properties" /> --><bean id="dataSource" value="${jdbc.driverClassName}" /><property name="driverUrl" value="${jdbc.url}" /><property name="user" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="maximumConnectionCount" value="300" /><property name="minimumConnectionCount" value="10" /><property name="prototypeCount" value="4" /><property name="maximumActiveTime" value="600000" /><property name="simultaneousBuildThrottle" value="5" /><property name="testBeforeUse" value="true" /><property name="houseKeepingTestSql" value="SELECT CURRENT_DATE" /></bean><!-- 定义jdbc配置信息路径 --><context:property-placeholder location="/WEB-INF/db.properties" />   <!-- 使用annotation定义事务 --><tx:annotation-driven transaction-manager="transactionManager" /><!-- 定义事务管理 --><!-- See http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html --><bean id="transactionManager"        p:dataSource-ref="dataSource" />  </beans>

?dao的代码:

@Repository("personDao")public class PersonDao {private SimpleJdbcTemplate jdbcTemplate;@Resource(name="dataSource")public void setDataSource(DataSource dataSource) {    this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);}public List<Person> getAllPerson() {String sql = "select id, first_name, last_name, money from person";// Maps a SQL result to a Java objectRowMapper<Person> mapper = new RowMapper<Person>() {          public Person mapRow(ResultSet rs, int rowNum) throws SQLException {        Person person = new Person();        person.setId(rs.getInt("id"));        person.setFirstName(rs.getString("first_name"));        person.setLastName(rs.getString("last_name"));        person.setMoney(rs.getDouble("money"));            return person;        }    };return jdbcTemplate.query(sql, mapper);}}

??service中的代码:

@Service("personService")@RemoteProxy(name="PersonService")public class PersonService {protected static Logger logger = Logger.getLogger("service");@Autowiredprivate PersonDao personDao;/** *检索所有的Person */@RemoteMethodpublic List<Person> getAll() {logger.debug("Retrieving all persons");System.out.println(personDao+"==========");return personDao.getAllPerson();}}

?control中的代码:

?

@Controller@RequestMapping("/main")public class MainController {protected static Logger logger = Logger.getLogger("controller");@Resource(name="personService")private PersonService personService;/** *获得所有的Person并返回到指定JSP页面 *  * @return the name of the JSP page */    @RequestMapping(value = "/persons.do", method = RequestMethod.GET)    public String getPersons(Model model) {    logger.debug("Received request to show all persons");        // 调用personService中的getAll获得所有的Person    List<Person> persons = personService.getAll();        // 把Person装入一个指定的model    model.addAttribute("persons", persons);        // 解析 /WEB-INF/jsp/personspage.jsp    return "personspage";}

?

要想servlet要spring容器来管理,在web.xml中 去掉springMVC配置 加上如下配置:

?

  <servlet>    <servlet-name>UserLoginServlet</servlet-name>    <servlet-class>net.rytong.servlet.ServletProxy</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>UserLoginServlet</servlet-name>    <url-pattern>/UserLoginServlet</url-pattern>  </servlet-mapping>

?并加上这个代理类

@SuppressWarnings("serial")public class ServletProxy extends  GenericServlet  {    private Servlet proxy;    @Override    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {        proxy.service(req, res);    }    @Override    public void init() throws ServletException {        WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());        System.out.println(getServletName()+"===============");        this.proxy = (Servlet) wac.getBean(getServletName());        proxy.init(getServletConfig());    }}

?

具体代码下载:(?数据库是基于mysql,jar包管理是Maven? 下载后报错请修改pom.xml)

?

热点排行