如何用maven搭用maven构建springmvcc

共被编辑 2 次
IDEA15如何使用maven方便的创建SpringMVC项目。
目前我是创建一个空白的maven项目,然后添加web模块,添加spring,还要自己写xml,但是我总觉得IDEA不应该这么傻啊。在youtube上找到了一个视频,视频里面用IDEA的Spring项目点创建后直接就创建了maven格式的,但是我的IDEA15上不行,是版本的原因吗?不可能版本越高越难用吧。
IDEA15如何使用maven方便的创建SpringMVC项目。
目前我是创建一个空白的maven项目,然后添加web模块,添加spring,还要自己写xml,但是我总觉得IDEA不应该这么傻啊。
我要该,理由是:java后台开发例子--使用Maven建立springmvc的web项目 - 2010yhh - CSDN博客
java后台开发例子--使用Maven建立springmvc的web项目
java后台开发例子–使用Maven建立springmvc的web项目
win7;jdk1.8_121;tomact8.0;
需要安装及配置好jdk,mysql。
maven管理工程,非常方便,但是由于eclipse新建web项目的jdk和web版本比较低,在eclipse下利用maven建立springmvc的web项目,网上的教程都较为复杂,且配置经常出现请求不到或扫描不到control的情况,这里记录一下eclipse下利用maven建立springmvc的web项目最简单的一个例子。
完整代码下载:
最终的例子的工程结构:
测试效果:
maven install:
2.详细配置
2.1建立工程结构:
使用eclipse建立的maven web项目不符合正常的目录结构,需要手动创建一些文件夹。
修改jdk版本,显示maven新建web项目自带的文件夹(这里修改后,还需要在pom.xmL中配置,否则更新工程后,jdk版本又恢复默认的):
项目右键建个source folder(测试用的,其实不建也不影响):
删除自动生成的index.jsp,在webapp\WEB-INF下建立views。
2.2添加jar包及配置jdk版本
复制下面pom.xml文件内容或者在pom.xml中添加需要的spring,servlet,common-logging jar包。
注意:下面的pom.xml配置jdk版本为1.8了
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&
&com.test&
&TestMaven&
&0.0.1-SNAPSHOT&
&TestMaven Maven Webapp&
&http://maven.apache.org&
&4.3.0.RELEASE&
&org.springframework&
&spring-core&
&${spring.version}&
&org.springframework&
&spring-web&
&${spring.version}&
&org.springframework&
&spring-webmvc&
&${spring.version}&
&javax.servlet&
&javax.servlet-api&
&org.apache.maven.plugins&
&maven-compiler-plugin&
&TestMaven&
或者一个一个的添加在pom.xml中添加需要的spring,servlet,common-logging jar包。(手动添加jar包需要pom.xml配置jdk版本,否则update更新完后,需要在build path中设置jdk版本,麻烦)
如图添加依赖:
2.3修改web版本:
如果不修改会出现红叉且运行失败:
2.4建立项目
上述工程结构建立及配置完后,进入项目内容方面。
建立control类;建立spring配置文件,修改web.xml,建立视图jsp文件等等
src\main\java下:ManygeSystem.java
package com.test
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.servlet.ModelAndView
@Controller
public class ManygeSystem {
@RequestMapping("/Login")
public ModelAndView login(@RequestParam("username") String userName,
@RequestParam("password") String passWord) {
ModelAndView mv = new ModelAndView("menu")
mv.addObject("name", userName)
spring DispatcherServlet配置文件;
src\main\resources:springContext.xml
&?xml version="1.0" encoding="UTF-8"?&
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd"&
base-package="com.test"/&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
name="prefix" value="/WEB-INF/views/" /&
name="suffix" value=".jsp" /&
web.xml(这里是3.1版本):
&?xml version="1.0" encoding="UTF-8"?&
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"&
&TestMaven&
&/WEB-INF/views/index.jsp&
&dispatcher&
&org.springframework.web.servlet.DispatcherServlet&
&contextConfigLocation&
&classpath:springContext.xml&
&dispatcher&
&contextConfigLocation&
&classpath:springContext.xml&
&org.springframework.web.context.ContextLoaderListener&
views下的视图文件(测试)
&%@ page language="java" contentType="text/ charset=UTF-8"
pageEncoding="UTF-8"%&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
http-equiv="Content-Type" content="text/ charset=UTF-8"&
action="Login" method="post"&
账号: type="text" name="username"/&/&
密码: type="text" name="password"/&/&
type="submit" value="Login"/&
&%@ page language="java" contentType="text/ charset=UTF-8"
pageEncoding="UTF-8"%&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
http-equiv="Content-Type" content="text/ charset=UTF-8"&
&java web开发mvc测试&
& color="green"&${name}
& 欢迎你!&
2.5更新,运行测试
上述文件建立或修改后,都要保存。
右键项目,maven ;update(一定要更新,所有的红叉消失,如果不在2.3中修改web版本,还会有红叉)。然后运行会得到1中的测试效果。
注意:常见运行失败问题,请求不到control
(1)修改2.3中的web版本,与web.xml中的web版本一致。(一般都是直接从别的工程复制过来,然后修改)
(2)更新后maven install 失败,未在pom.xml中配置jdk版本,这样更新后maven web项目默认的jdk版本为1.5较低。
(3)一般修改后,运行前要更新一下工程。如果tomact启动失败需要重启eclipse或者删除当前server,重新建个server或者删除tomact webapp下生成的项目文件。
我的热门文章博客分类:
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案。标准的MVC设计模式,将整个系统划分为显示层、Controller层、Service层、Dao层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理, MyBatis作为数据对象持久化引擎。
一. 框架详情
Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC 属于SpringFrameWork的后续产品,分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis 是一个基于Java的持久层框架。MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java映射成数据库中的记录。
二. 创建Maven项目
Eclipse中用Maven创建项目
按默认Next
找到maven-archetype-webapp后,点击next
填写相应的信息,GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。Package填了默认给你建一个包,不写也可以。
刚建好的目录如下
Maven规定必须添加以下Source Folder:src/main/resourcessrc/main/javasrc/test/resourcessrc/test/java在这步之前最好先项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre。
分别修改输出路径为,对应关系如下:
将项目转换成Dynamic Web Project,在项目上右键Properties,在左侧选择 Project Facets。
设置部署时的文件发布路径,删除test的两项,因为test是测试使用,并不需要部署。设置将Maven的jar包发布到lib下。Add -& Java Build Path Entries -& Maven Dependencies -& Finish
三. Maven引入需要的JAR包
&project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.yingjun.test&/groupId&
&artifactId&TradingState&/artifactId&
&packaging&war&/packaging&
&version&2.0.1&/version&
&properties&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&maven.build.timestamp.format&yyyyMMddHHmmss&/maven.build.timestamp.format&
&spring.version&3.2.9.RELEASE&/spring.version&
&mybatis.version&3.1.1&/mybatis.version&
&mybatisspring.version&1.1.1&/mybatisspring.version&
&/properties&
&dependencies&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-core&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-webmvc&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-test&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis&/artifactId&
&version&${mybatis.version}&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis-spring&/artifactId&
&version&${mybatisspring.version}&/version&
&/dependency&
&dependency&
&groupId&mysql&/groupId&
&artifactId&mysql-connector-java&/artifactId&
&version&5.1.34&/version&
&/dependency&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&4.11&/version&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&c3p0&/groupId&
&artifactId&c3p0&/artifactId&
&version&0.9.1.2&/version&
&/dependency&
&dependency&
&groupId&org.aspectj&/groupId&
&artifactId&aspectjweaver&/artifactId&
&version&1.8.1&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&jstl&/artifactId&
&version&1.2&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&servlet-api&/artifactId&
&version&3.0&/version&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&javax.servlet.jsp&/groupId&
&artifactId&jsp-api&/artifactId&
&version&2.2&/version&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&commons-fileupload&/groupId&
&artifactId&commons-fileupload&/artifactId&
&version&1.3.1&/version&
&/dependency&
&dependency&
&groupId&commons-lang&/groupId&
&artifactId&commons-lang&/artifactId&
&version&2.6&/version&
&/dependency&
&dependency&
&groupId&commons-codec&/groupId&
&artifactId&commons-codec&/artifactId&
&version&1.9&/version&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.5&/version&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-api&/artifactId&
&version&1.7.10&/version&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-log4j12&/artifactId&
&version&1.7.10&/version&
&/dependency&
&dependency&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&version&1.2.17&/version&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&fastjson&/artifactId&
&version&1.1.41&/version&
&/dependency&
&dependency&
&groupId&org.codehaus.jackson&/groupId&
&artifactId&jackson-mapper-asl&/artifactId&
&version&1.9.13&/version&
&/dependency&
&/dependencies&
&artifactId&maven-compiler-plugin&/artifactId&
&version&2.3.2&/version&
&configuration&
&source&1.7&/source&
&target&1.7&/target&
&/configuration&
&artifactId&maven-war-plugin&/artifactId&
&version&2.2&/version&
&configuration&
&version&3.0&/version&
&failOnMissingWebXml&false&/failOnMissingWebXml&
&/configuration&
&/plugins&
&finalName&${project.artifactId}_${project.version}_${maven.build.timestamp}&/finalName&
&/project&
四. 相关配置文件配置,整合SSM框架
&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"&
&!-- 配置 Spring --&
&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&
&!-- 防止Spring内存溢出监听器 --&
&listener&
&listener-class&org.springframework.web.util.IntrospectorCleanupListener&/listener-class&
&/listener&
&!-- 配置springmvc --&
&servlet-name&springMVC&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring-mvc.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&springMVC&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&!-- 字符集过滤器 --&
&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&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&/web-app&
spring.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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "&
&!-- 扫描service、dao组件 --&
&context:component-scan base-package="com.yingjun.test" /&
&!-- 分解配置 jdbc.properites --&
&context:property-placeholder location="classpath:jdbc.properties" /&
&!-- 数据源c3p0 --&
&bean id="dataSource" class="com.mchange.boPooledDataSource"&
&property name="driverClass" value="${jdbc.driverClassName}" /&
&property name="jdbcUrl" value="${jdbc.url}" /&
&property name="user" value="${jdbc.username}" /&
&property name="password" value="${jdbc.password}" /&
&property name="maxPoolSize" value="${c3p0.pool.size.max}" /&
&property name="minPoolSize" value="${c3p0.pool.size.min}" /&
&property name="initialPoolSize" value="${c3p0.pool.size.ini}" /&
&property name="acquireIncrement" value="${c3p0.pool.size.increment}" /&
&!-- sessionFactory 将spring和mybatis整合 --&
&bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
&property name="dataSource" ref="dataSource" /&
&property name="configLocation" value="classpath:spring-mybatis.xml" /&
&property name="mapperLocations" value="classpath*:com/yingjun/test/mapping/**/*.xml" /&
&bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
&property name="basePackage" value="com,yingjun.test.dao" /&
&property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /&
&bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
&property name="dataSource" ref="dataSource" /&
&tx:advice id="transactionAdvice" transaction-manager="transactionManager"&
&tx:attributes&
&tx:method name="add*" propagation="REQUIRED" /&
&tx:method name="append*" propagation="REQUIRED" /&
&tx:method name="insert*" propagation="REQUIRED" /&
&tx:method name="save*" propagation="REQUIRED" /&
&tx:method name="update*" propagation="REQUIRED" /&
&tx:method name="modify*" propagation="REQUIRED" /&
&tx:method name="edit*" propagation="REQUIRED" /&
&tx:method name="delete*" propagation="REQUIRED" /&
&tx:method name="remove*" propagation="REQUIRED" /&
&tx:method name="repair" propagation="REQUIRED" /&
&tx:method name="delAndRepair" propagation="REQUIRED" /&
&tx:method name="get*" propagation="SUPPORTS" /&
&tx:method name="find*" propagation="SUPPORTS" /&
&tx:method name="load*" propagation="SUPPORTS" /&
&tx:method name="search*" propagation="SUPPORTS" /&
&tx:method name="datagrid*" propagation="SUPPORTS" /&
&tx:method name="*" propagation="SUPPORTS" /&
&/tx:attributes&
&/tx:advice&
&aop:config&
&aop:pointcut id="transactionPointcut" expression="execution(* com.yingjun.test.service..*Impl.*(..))" /&
&aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /&
&/aop:config&
为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类 可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 DAO 实现的代码,因为 MyBatis-Spring 将会为你创建代理。
spring-mybatis.xml
&?xml version="1.0" encoding="UTF-8" ?&
&!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&
&configuration&
&!-- 暂时不需要其他配置--&
&/configuration&
spring-mvc.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:context="http://www.springframework.org/schema/context"
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.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"&
&!-- 默认的注解映射的支持 --&
&mvc:annotation-driven /&
&!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --&
&context:component-scan base-package="com.yingjun.test.controller" /&
&!--避免IE执行AJAX时,返回JSON出现下载文件 --&
&bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"&
&property name="supportedMediaTypes"&
&value&text/charset=UTF-8&/value&
&/property&
&!-- 定义跳转的文件的前后缀 ,视图模式配置 --&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --&
&property name="prefix" value="/WEB-INF/jsp/" /&
&property name="suffix" value=".jsp" /&
&!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --&
&bean id="multipartResolver"
class="org.springframework.monsMultipartResolver"&
&!-- 默认编码 --&
&property name="defaultEncoding" value="utf-8" /&
&!-- 文件大小最大值 --&
&property name="maxUploadSize" value="" /&
&!-- 内存中的最大值 --&
&property name="maxInMemorySize" value="40960" /&
log4j.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.194:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
c3p0.pool.size.max=20
c3p0.pool.size.min=5
c3p0.pool.size.ini=3
c3p0.pool.size.increment=2
jdbc.properties
log4j.rootLogger=info, console, debug, app, error
###Console ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d %p[%C:%L]- %m%n
### debug ###
log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File = log/debug.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.DatePattern='.'yyyy-MM-dd
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %d %p[%c:%L] - %m%n
### app ###
log4j.appender.app = org.apache.log4j.DailyRollingFileAppender
log4j.appender.app.File = log/app.log
log4j.appender.app.Append = true
log4j.appender.app.Threshold = INFO
log4j.appender.app.DatePattern='.'yyyy-MM-dd
log4j.appender.app.layout = org.apache.log4j.PatternLayout
log4j.appender.app.layout.ConversionPattern = %d %p[%c:%L] - %m%n
### Error ###
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = log/error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.DatePattern='.'yyyy-MM-dd
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern =%d %p[%c:%L] - %m%n
五. 利用MyBatis Generator自动创建实体类、映射文件以及DAO接口
MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。生成代码需要的文件和jar并建立如下目录结构:在generatorl.xml中配置相关的数据库连接,已经数据库表:&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"&
&generatorConfiguration&
&!-- 数据库驱动 --&
&classPathEntry location="mysql-connector-java-5.1.34.jar" /&
&context id="DB2Tables" targetRuntime="MyBatis3"&
&commentGenerator&
&property name="suppressDate" value="true" /&
&!-- 是否去除自动生成的注释 true:是 : false:否 --&
&property name="suppressAllComments" value="true" /&
&/commentGenerator&
&!--数据库链接URL,用户名、密码 --&
&jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.1.194:3306/noc"
userId="root" password="root"&
&/jdbcConnection&
&javaTypeResolver&
&property name="forceBigDecimals" value="false" /&
&/javaTypeResolver&
&!-- 生成模型的包名和位置 --&
&javaModelGenerator targetPackage="com.yingjun.test.model"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&property name="trimStrings" value="true" /&
&/javaModelGenerator&
&!-- 生成映射文件的包名和位置 --&
&sqlMapGenerator targetPackage="com.yingjun.test.mapping"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&/sqlMapGenerator&
&!-- 生成DAO的包名和位置 --&
&javaClientGenerator type="XMLMAPPER" targetPackage="com.yingjun.test.dao"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&/javaClientGenerator&
&!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 --&
&table tableName="other_list" domainObjectName="OtherList"
enableCountByExample="fasle" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" &
&/context&
&/generatorConfiguration&
打开CMD窗口 进入该目录结构,输入命令行:java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
运行完成后会生成相应的dao mapper 和model,是不是很爽。
六. 建立Service层以及conrorller层
package com.yingjun.test.
public interface OtherServiceI {
public String getOterList();
package com.yingjun.test.
import java.util.ArrayL
import java.util.A
import java.util.HashS
import java.util.L
import java.util.M
import java.util.S
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.S
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerF
import com.yingjun.test.dao.OtherListM
import com.yingjun.test.model.OtherL
import com.yingjun.test.model.OtherListD
public class OtherServiceImpl implements OtherServiceI {
@Autowired
private OtherListMapper otherListM
public String getOterList() {
Set&String& set=new HashSet&String&();
List&OtherList& list=otherListMapper.selectAll();
List&OtherListDomain& jsonList=new ArrayList&OtherListDomain&();
for(OtherList other:list){
String title=other.getTitle();
if(set.contains(title)){
List&OtherList& t_list=new ArrayList&OtherList&();
for(OtherList data:list){
if(title.equals(data.getTitle())){
t_list.add(data);
OtherListDomain domain=new OtherListDomain();
domain.setTitle(title);
domain.setItems(t_list);
jsonList.add(domain);
set.add(other.getTitle());
return JSON.toJSONString(jsonList, SerializerFeature.WriteMapNullValue);
package com.yingjun.test.
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import com.alibaba.fastjson.JSON;
import com.yingjun.test.service.OtherServiceI;
import com.yingjun.test.service.StockStatusServiceI;
@Controller
@RequestMapping(value = "/")
public class TSSController {
@Autowired
private OtherServiceI otherS
@RequestMapping(value="/getOtherList",produces="text/charset=UTF-8" )
@ResponseBody
private String getOtherList(){
String json=otherService.getOterList();
七. 建立测试类
import java.util.L
import org.apache.log4j.LogM
import org.apache.log4j.L
import org.junit.T
import org.junit.runner.RunW
import org.springframework.beans.factory.annotation.A
import org.springframework.test.context.ContextC
import org.springframework.test.context.junit4.SpringJUnit4ClassR
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring.xml"})
public class TestMybatis {
@Autowired
private OtherServiceI
public void test() {
String list=service.getOterList();
八. 通过浏览器进行验证
http://localhost:8080/TzyjStateService/getOtherList
至此,测试成功,SSM三大框架的整合就完成了,有什么其他需求可以在此基础继续添加。
浏览 52925
wosyingjun
浏览: 244772 次
来自: 杭州
浏览量:89284
找不到数据库初始化脚本
juvconan 写道./redis-trib命令建立集群时, ...
Sentinel集群的时候
master shutd ...
楼主什么时候更shiro权限啊
三2、在3个ActiveMQ节点中配置conf/activem ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 maven中使用springmvc 的文章

 

随机推荐