下午想试着去完成一个连接数据库的Spring mvc用户管理小系统,首先是在配置applicationContext.xml文件的数据源出了问题,去查一下才发现web.xml跟applicationContext.xml的配置还是有很多部分没去了解的!找到一个算是完整点的配置方法。
- 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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 定义个缺省的控制适配器 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 获取配置文件 --> <bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:db-config.properties</value> </list> </property> </bean> <!-- 获取数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>${db.dirverClass}</value> </property> <property name="url"> <value>${db.url}</value> </property> <property name="username"> <value>${db.username}</value> </property> <property name="password"> <value>${db.password}</value> </property> </bean> <!-- URL到处理器的映射列表可以配置多个 mappings属性健值为URL程序文件地址,而值为处理器的Bean名字,URL程序文件地址可采用路径匹配的模式,如: com/mvc/t?st.jsp:匹配com/mvc/test.jsp、com/mvc/tast.jsp等 com/mvc /*.jsp :匹配所有com/mvc/下带jsp后缀的URL com/mvc /**/test.jsp:匹配所有在com/mvc路径下或子孙路径下的test.jsp com/mvc /**/*.jsp:匹配所有com/mvc路径下或子孙路径下带.jsp后缀的URL cn/**/web/bla.jsp:匹配 cn/option/web/dog.jsp cn/option/test/web/dog.jsp cn/web/dog.jsp的请求 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <value> user.do=userAction </value> </property> </bean> <!--定义视图通过internalResourceView来表示使用的是Servlet/jsp技术--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.InternalResourceView </value> </property> <!--jsp存放的目录--> <property name="prefix"> <value>/jsp/</value> </property> <!--jsp文件的后缀--> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="userDao" class="com.yjde.springmvc.UserDao"> <property name="dataSource"ref="dataSource"></property> </bean> <!--定义控制器--> <bean id="userAction" class="com.yjde.springmvc.UserController"> <property name="dao"> <ref bean="userDao"/> </property> <property name="commandClass"> <value>com.yjde.springmvc.UserDao</value> </property> <property name="viewpage"> <value>userInfo</value> </property> </bean> </beans>
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <!--springmvc的核心是DispatcherServlet,它负责控制整个页面的请求路径--> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--初始化参数>/WEB-INF/classes/相当于src目录--> <init-param> <!-- 这个param-name必须是contextConfigLocation--> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!--拦截所有以do结尾的请求--> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!--处理从页面传递中文到后台而出现的中文乱码问题--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
搞定了数据源之后!开始MVC的各个层的新建。首先是实体层(entity)然后是DAO层包括DAOImpl用于实现DAO里面的接口。这是一种松耦,如果下次需要使用sql server数据库,就只需要更改DAOImpl就行了!接着Service层。服务层是一个中间层,跟dao层controller层打交道。
接着到操作数据库了!看得文章里面基本上都是使用getJdbcTemplate()方法来实现增删改查,又是去查了很多文章才弄的懂!比之前使用的那种方法简单了很多。接触了spring之后很多东西变得简单了!使用注解,连been都不用手动去写了。不过得从最基础的been开始写起!看资料弄清楚。前两天是硬吃了整个spring mvc今天一整天算是来填补其中的漏洞,把很多不解都搞清楚。 弄到现在基本上把环境搞清楚了!对spring的依赖注入了解的更深刻,只是一些注解还不是很熟悉!具体怎么使用还是得去查资料。