Idea SpringMVC+Spring+MyBatis+Maven怎么使用
本篇内容介绍了“Idea SpringMVC+Spring+MyBatis+Maven怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Idea SpringMVC+Spring+MyBatis+Maven整合创建项目
File-New Project
选中左侧的Maven,选中右侧上方的Create from archetype,然后选中下方列表中的webapp,然后点击Next
在GroupId和ArtifactId中填入指定内容,点击Next
直接点Next
输入项目名称,Finish
Idea会自动开始下载所依赖的包,等待其完成。
项目结构项目刚建好的时候是没有这些文件的,所以自己手动创建缺少的文件夹(包)
创建完后的项目框架:
修改pom.xml导入依赖包插件依赖包需要如下:
spring framework
aspectj事务
c3p0数据源
servlet/jsp api
junit4
mybatis
mybatis spring整合
mysql driver
jstl
<projectxmlns="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.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.elin4it.ssm</groupId><artifactId>ssm</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>ssmMavenWebapp</name><url>http://maven.apache.org</url><build><finalName>ssm</finalName><plugins><!--mybatis逆向工程插件--><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><verbose>true</verbose><overwrite>true</overwrite></configuration></plugin></plugins></build><properties><spring.version>4.1.1.RELEASE</spring.version></properties><dependencies><!--springframestart--><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</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-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!--springframeend--><!--aspectjstart--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.6</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.8.6</version></dependency><!--aspectjend--><!--c3p0--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.1</version></dependency><!--servlet/jspapistart--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><!--servlet/jspapiend--><!--junit4--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency><!--mybatisspring整合--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.3</version></dependency><!--mysqldriver--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><!--jstl--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies></project>
插件需要用到mybatis的逆向工程
完整的pom.xml代码清单:
user表结构
DROPTABLEIFEXISTS`user`;/*!40101SET@saved_cs_client=@@character_set_client*/;/*!40101SETcharacter_set_client=utf8*/;CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(32)NOTNULLCOMMENT'用户名称',`birthday`dateDEFAULTNULLCOMMENT'生日',`sex`char(1)DEFAULTNULLCOMMENT'性别',`address`varchar(256)DEFAULTNULLCOMMENT'地址',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=27DEFAULTCHARSET=utf8;
在main/resources中创建generatorConfig.xml文件
generatorConfig.xml代码清单
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><classPathEntrylocation="F:\jar\mysql\mysql-connector-java-5.1.7-bin.jar"/><contextid="testTables"targetRuntime="MyBatis3"><commentGenerator><!--是否去除自动生成的注释true:是:false:否--><propertyname="suppressAllComments"value="true"/></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码--><!--<jdbcConnectiondriverClass="${jdbc.driver}"--><!--connectionURL="${jdbc.url}"--><!--userId="${jdbc.username}"--><!--password="${jdbc.password}">--><!--</jdbcConnection>--><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=UTF-8"userId="root"password=""></jdbcConnection><!--默认false,把JDBCDECIMAL和NUMERIC类型解析为Integer,为true时把JDBCDECIMAL和NUMERIC类型解析为java.math.BigDecimal--><javaTypeResolver><propertyname="forceBigDecimals"value="false"/></javaTypeResolver><!--targetProject:生成PO类的位置--><javaModelGeneratortargetPackage="com.elin4it.springmvcMaven.pojo"targetProject="src\main\java"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/><!--从数据库返回的值被清理前后的空格--><propertyname="trimStrings"value="true"/></javaModelGenerator><!--targetProject:mapper映射文件生成的位置--><sqlMapGeneratortargetPackage="com.elin4it.springmvcMaven.mapper"targetProject="src\main\resources"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/></sqlMapGenerator><!--targetPackage:mapper接口生成的位置--><javaClientGeneratortype="XMLMAPPER"targetPackage="com.elin4it.springmvcMaven.mapper"targetProject="src\main\java"><!--enableSubPackages:是否让schema作为包的后缀--><propertyname="enableSubPackages"value="false"/></javaClientGenerator><!--指定数据库表--><tabletableName="user"></table><!--有些表的字段需要指定java类型<tableschema=""tableName=""><columnOverridecolumn=""javaType=""/></table>--></context></generatorConfiguration>
点击idea右侧的maven选项卡,选择其中的mybatis-generator,点击顶部的绿色按钮运行
如果没有出错的话,应该会自动生成mapper接口文件、xml文件、pojo文件。
db.properties文件在resources/config中创建db.properties,该文件用来描述mysql连接信息
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=UTF-8jdbc.username=rootjdbc.password=SqlMapConfig文件
在resources/config/mybatis中创建SqlMapConfig.xml文件,该文件为Mybatis的配置文件,由于跟spring整合,所以一些基础配置文件都在spring中,在这里该文件中值需要写文件的框架
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration></configuration>SpringMVC配置文件
在resources/config/spring中创建springmvc.xml文件
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--自动扫描控制器--><context:component-scanbase-package="com.elin4it.ssm.controller"/><!--视图渲染--><beanid="internalResourceViewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/views/"/><propertyname="suffix"value=".jsp"/></bean><!--控制器映射器和控制器适配器--><mvc:annotation-driven></mvc:annotation-driven></beans>Spring IOC注入和事件控制
在resources/config/spring中创建applicationContext-dao.xml、application-service.xml、applicationContext-transaction.xml文件
applicationContext-dao.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--获取数据库配置文件--><context:property-placeholderlocation="classpath:config/db.properties"/><!--设置数据源c3p0--><beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><propertyname="driverClass"value="${jdbc.driver}"/><propertyname="jdbcUrl"value="${jdbc.url}"/><propertyname="user"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/><propertyname="maxPoolSize"value="50"/><propertyname="minPoolSize"value="2"/><propertyname="maxIdleTime"value="60"/></bean><!--sqlsessionFactorybean--><beanid="sqlSession"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="configLocation"value="classpath:config/mybatis/SqlMapConfig.xml"/><propertyname="dataSource"ref="dataSource"/></bean><!--自动扫描mapper接口,并注入sqlsession--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><propertyname="basePackage"value="com.elin4it.ssm.mapper"/><propertyname="sqlSessionFactoryBeanName"value="sqlSession"/></bean></beans>
application-service.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--扫描service--><context:component-scanbase-package="com.elin4it.ssm.service"/></beans>
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><beanid="dataSourceTransactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"/></bean><tx:adviceid="txAdvice"transaction-manager="dataSourceTransactionManager"><tx:attributes><tx:methodname="find*"propagation="REQUIRED"/><tx:methodname="update*"propagation="REQUIRED"/><tx:methodname="delete*"propagation="REQUIRED"/><tx:methodname="add*"propagation="REQUIRED"/></tx:attributes></tx:advice><aop:config><aop:advisoradvice-ref="txAdvice"pointcut="execution(*cn.elinzhou.ixxs.service.*.*(..))"/></aop:config></beans>
applicationContext-transaction.xml
<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><beanid="dataSourceTransactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"/></bean><tx:adviceid="txAdvice"transaction-manager="dataSourceTransactionManager"><tx:attributes><tx:methodname="find*"propagation="REQUIRED"/><tx:methodname="update*"propagation="REQUIRED"/><tx:methodname="delete*"propagation="REQUIRED"/><tx:methodname="add*"propagation="REQUIRED"/></tx:attributes></tx:advice><aop:config><aop:advisoradvice-ref="txAdvice"pointcut="execution(*cn.elinzhou.ixxs.service.*.*(..))"/></aop:config></beans>web.xml文件
修改web.xml文件内容
<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><!--设置spring配置文件的位置--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:config/spring/applicationContext-*.xml</param-value></context-param><!--配置springlistener--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--解决POST乱码问题--><filter><filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--springmvc前端控制器配置--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:config/spring/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>Service接口与实现
创建一个简单的service,只有一个查看所有用户列表的功能
UserService.java
packagecom.elin4it.ssm.service;importcom.elin4it.ssm.pojo.User;importjava.util.List;/***Createdby烽on2015/7/11.*/publicinterfaceUserService{/***查找所有用户*@return*@throwsException*/List<User>findUser()throwsException;}
实现类UserServiceImpl.java
packagecom.elin4it.ssm.service;importcom.elin4it.ssm.mapper.UserMapper;importcom.elin4it.ssm.pojo.User;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;/***Createdby烽on2015/7/11.*/@ServicepublicclassUserServiceImplimplementsUserService{//User接口@AutowiredprivateUserMapperuserMapper;publicList<User>findUser()throwsException{//调用mapper类中的selectByExample方法,如果传入类型为null,则表示无条件查找List<User>users=userMapper.selectByExample(null);returnusers;}}Controller
packagecom.elin4it.ssm.controller;importcom.elin4it.ssm.pojo.User;importcom.elin4it.ssm.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.servlet.ModelAndView;importjava.util.List;/***Createdby烽on2015/7/11.*/@Controller@RequestMapping("/user")publicclassUserController{//service类@AutowiredprivateUserServiceuserService;/***查找所用用户控制器方法*@return*@throwsException*/@RequestMapping("/findUser")publicModelAndViewfindUser()throwsException{ModelAndViewmodelAndView=newModelAndView();//调用service方法得到用户列表List<User>users=userService.findUser();//将得到的用户列表内容添加到ModelAndView中modelAndView.addObject("users",users);//设置响应的jsp视图modelAndView.setViewName("findUser");returnmodelAndView;}}视图
根据之前写的controller,返回的视图为findUser,所以在/WEB-INF/views中创建findUser.jsp文件,用来显示查询出来的结果
<%--CreatedbyIntelliJIDEA.User:烽Date:2015/7/11Time:19:47TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><html><head><title></title></head><body><h2>findUser</h2><table><c:forEachitems="${users}"var="u"><tr><td>${u.id}</td><td>${u.username}</td><td>${u.birthday}</td></tr></c:forEach></table></body></html>
1. 使用阿里巴巴Druid连接池(高效、功能强大、可扩展性好的数据库连接池、监控数据库访问性能、支持Common-Logging、Log4j和JdkLog,监控数据库访问)
2. 提供高并发JMS消息处理机制
3. 所有功能模块化、所有模块服务化、所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机
4. 提供Wink Rest、Webservice服务,故可作为独立服务平台部署
框架整合:
Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC、IOS、Android)
框架简介:
项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~
持续集成:
1. 我的待办工作流服务(提供Webservice服务)
2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成)
3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等
4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等
系统模块:
1. 用户管理:
用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等)
用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等)
用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等)
2. 文章管理:
栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。
文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。
3. 系统设置:
数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。
部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。
日志管理:系统日志列表查询、在线查看、在线下载等
路线管理:集成百度地图API,提供线路查询管理功能
Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等
网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。
4.集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等)
5. 集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务)
6. Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来
7. 用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。
8. 集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。
9. Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。
技术点:
1. Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。
2. Wink Rest服务、Webservice服务:jaxws、CXF等
3. IO 流上传下载文件,多线程操作
4. 发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件
5. MD5加密 (登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。
6. 数据库连接池统一配置
7. Quartz定时调度任务集成(直接通过配置即可)
8. Httpclient破解验证码,登陆联通充值平台
9. 汉字、英文拆分、可以用作文档关键字搜索等。
10. Base64图片处理,支持PC,Android,IOS
11. Service Socket、Client Socket通信技术(已经做过GPRS数据获取,并用到了项目中)
12. 提供大量工具类,可以直接使用
13. Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。
“Idea SpringMVC+Spring+MyBatis+Maven怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。