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.xmlspring-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>

通过上面两步操作,就在项目中集成了springspring-mvcmybatis还有restful,当然,如果让项目更加完善,还必须配置log4j,读取log4j的配置已经在web.xml中给出,下面介绍配置log4j.properties

uiresources目录下配置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  

一个完整的企业级项目框架就搭建出来了。



0 0
原创粉丝点击