Spring+SpringMVC+Mybatis+Restful+Maven多模块项目集成
来源:互联网 发布:java开发网上商城 编辑:程序博客网 时间:2024/05/29 21:30
1.建立Maven多模块项目
多模块项目就是将前台和后台进行分离,让后台开发者专注于后台逻辑,前台开发者专注于前台功能,两者互不干扰却又相互协作。
(1)创建父项目
选择new->other->Maven Project
这一步去掉Create a simple project (skip archetype selection)
选择quick start模板
现在Eclipse中可以看见我们新建的项目,这是普通的项目,要想作为一个父项目,必须要将打包方式改成POM。
删掉除pom文件和.project之外的所有文件,src如有需要可以保留。
(2)创建Web模块
右键点击刚刚新建的store项目,New->other->maven module。
输入模块名称。
模板选择web-app。
然后点击完成。这时我们看到的项目时这样的。
(3)创建Service模块
创建service模块与创建web模块基本一致。唯一的不同是在选择模板的时候使用quick start。
创建完成后我们的项目就变成这样了。
在ui模块中添加对service的依赖,就可以使用service模块中所有的功能了。
2.配置Spring ,Mybatis,Restful
首先要引入所有的依赖包,在父项目store 的pom文件中添加依赖。
依赖配置参考我的另一篇文章<链接>。
在service项目的resources目录下新建Spring目录,Spring目录下添加文件spring-mybatis.xml和spring-mvc.xml两个文件。
spring-mybatis.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.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.jnk.app" /> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:/mysql/jdbc.properties</value> <!--要是有多个配置文件,只需在这里继续添加即可 --> </list> </property> </bean> <bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${db_driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.jnk.app.store.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans>
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.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.jnk" /> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --> </list> </property> </bean> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> </beans>
在ui子项目中配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID" version="3.0"><display-name>Archetype Created Web Application</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>index.html</welcome-file></welcome-file-list><!-- 编码过滤器 <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <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> --><!-- 监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 载入Spring-mybatis配置文件,SpringMVC配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring/spring-mvc.xmlclasspath*:spring/spring-mybatis.xml</param-value></context-param><!-- Jersey spring 配置 --><servlet><servlet-name>Jersey Web Application</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>com.jnk.app;org.codehaus.jackson.jaxrs</param-value></init-param></servlet><servlet-mapping><servlet-name>Jersey Web Application</servlet-name><url-pattern>/rest/*</url-pattern></servlet-mapping><!-- 登录拦截器 --><!-- <filter> <filter-name>loginFilter</filter-name> <filter-class>com.jnk.app.ui.filter.LoginFilter</filter-class> <init-param> <param-name>loginPage</param-name> <param-value>store/index.html</param-value> </init-param> <init-param> <param-name>noFilter</param-name> <param-value>/rest/connect/,/rest/test/,/rest/example</param-value> </init-param> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/rest/*</url-pattern> </filter-mapping> --><!-- 3000 表示开一条watchdog线程60秒扫描一次配置文件的变化,这样便于日志存放位置的改变 --><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:conf/log4j.properties</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>3000</param-value></context-param><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener></web-app>
通过上面两步操作,就在项目中集成了spring,spring-mvc,mybatis还有restful,当然,如果让项目更加完善,还必须配置log4j,读取log4j的配置已经在web.xml中给出,下面介绍配置log4j.properties。
在ui的resources目录下配置log4j.properties
#定义LOG输出级别 log4j.rootLogger=INFO,Console,File #定义日志输出目的地为控制台 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=[%c] - %m%n #文件大小到达指定尺寸的时候产生一个新的文件 log4j.appender.File = org.apache.log4j.RollingFileAppender #指定输出目录 log4j.appender.File.File = logs/ssm.log #定义文件最大大小 log4j.appender.File.MaxFileSize = 10MB # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志 log4j.appender.File.Threshold = ALL log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
一个完整的企业级项目框架就搭建出来了。
- Spring+SpringMVC+Mybatis+Restful+Maven多模块项目集成
- springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制
- maven项目springMVC+spring+mybatis集成,实现人员登陆
- Maven + Spring + Restful + mybatis 项目依赖配置
- eclipse 使用maven 集成spring+springMVC+mybatis
- Spring+SpringMVC+Mybatis Maven集成小结
- SpringMvc+Maven多模块项目。集成mina框架
- maven创建多模块项目+springMVC+mybatis
- Spring+Spring MVC+Mybatis+Maven搭建多模块项目(一)
- Spring+Spring MVC+Mybatis+Maven搭建多模块项目(二)
- Spring+Spring MVC+Mybatis+Maven搭建多模块项目(一)
- Spring+Spring MVC+Mybatis+Maven搭建多模块项目(二)
- springmvc+maven+mybatis集成
- 【SSMS】springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制
- 用maven项目mybatis集成spring+springmvc无刷新实现crud
- 用maven项目mybatis集成spring+springmvc无刷新实现crud
- springmvc+spring+mybatis+maven项目构建
- 构建项目Maven+SpringMVC+Spring+Mybatis
- PTX ISA 之 同步指令 bar & membar
- https环境搭建之体验过程及原理与总结
- hdu 3555 Bomb (数位DP)
- MongoDB的正确使用姿势
- Chromium WebView C++代码的调试
- Spring+SpringMVC+Mybatis+Restful+Maven多模块项目集成
- 基于Spring Boot、Spring Cloud、Docker的微服务系统架构实践
- call by value or reference
- Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"的解决办法
- Java Web01之初识servlet和request
- 精进-每一个成功者都是唯一的
- ROS总结——ROS节点
- 2的幂次方表示
- Fighting_小银考呀考不过四级