Spring + SpringMVC + Mybatis框架搭建步骤

合集下载

spring4+springmvc+mybatis基本框架(app后台框架搭建一)

spring4+springmvc+mybatis基本框架(app后台框架搭建一)

spring4+springmvc+mybatis基本框架(app后台框架搭建⼀)前⾔:随着spring 越来越强⼤,⽤spring4来搭建框架也是很快速,问题是你是对spring了解有多深⼊。

如果你是新⼿,那么在搭建的过程中可以遇到各种各样奇葩的问题。

SSM框架的搭建是作为我搭建APP开发框架的基础。

我将会分以下⼏点:1) 配置⽂件如何配置2) 如何java配置启动servlet3) ⼀些搭建过程中的坑=============================================================================配置⽂件如何配置SSM框架的搭建配置⽅式有很多种,可具体分可以分为javaConfig配置,xml配置,或者xml⽂件与javaConf混合配置。

其实⽤那种都⾏了,我个⼈搭建还是偏xml配置,不过现在的javaConfig也很成熟,也可以考虑,就是有⼀些坑,后⾯会讲到的;混合配置,⽤的情况也是蛮多的,分享中会涉及⼀点。

接下来,我主要是以java配置类做的配置:这是项⽬的结构 com.ouyang.teson⽬录下直接放置配置类:1)AppConfig.javapackage com.ouyang.teson;import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.springframework.context.annotation.*;import org.springframework.transaction.annotation.EnableTransactionManagement;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.mvc.Controller;/*** Created by ThinkPad on 2017/6/15.*/@Configuration@EnableAspectJAutoProxy@EnableTransactionManagement@ComponentScan(basePackages = {"com.ouyang.teson"},excludeFilters={@ComponentScan.Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)})@Import(AppDataConfig.class)//@PropertySource({"classpath:jdbc.properties"})//@ImportSource("XXXX.xml")/*@Configuration,⽤于表⽰这个类是⼀个配置类,⽤于配置Spring的相关信息@EnableAspectJAutoProxy,启⽤切⾯⾃动代理,⽤于AOP@EnableTransactionManagement,启⽤注解事务,即可以使⽤@Transactional注解来控制事务@ComponentScan,组件扫描,在basePackages指定的⽬录下扫描被@Controller、@Service、@Component等注解注册的组件@Import,引⼊指定的配置类,我们引⼊了Spring容器配置类和数据源事务配置类@PropertySource,加载指定的配置⽂件,配置⽂件内容会加载⼊Environment中等待调⽤*/public class AppConfig {@Beanpublic MapperScannerConfigurer mapperScannerConfigurer() {MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();// 跟@MapperScan(basePackages = { "com.ouyang.teson.dao" }) 等同//如果通过web.xml 加载servlet的话,可能找不到映射对象建议⽤注解mapperScannerConfigurer.setBasePackage("com.ouyang.teson.dao");mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");return mapperScannerConfigurer;}}2) AppDataConfig.java 是导⼊的配置package com.ouyang.teson;import com.alibaba.druid.pool.DruidDataSource;import com.ouyang.teson.bean.TestBean;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.*;import org.springframework.core.env.Environment;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import javax.sql.DataSource;import java.io.IOException;/*** Created by ThinkPad on 2017/6/15.*/@EnableAspectJAutoProxy@EnableTransactionManagement@PropertySource({"classpath:jdbc.properties"})//@MapperScan(value={"/com/ouyang/teson/dao/*.xml"},basePackages = {"com.ouyang.teson.dao"})public class AppDataConfig {@Autowiredprivate Environment env;//设置阿⾥druid数据源@Bean(name="dataSource")public DataSource getDataSource() {DruidDataSource druidDataSource = new DruidDataSource();System.out.println("=============env============"+env.getProperty("jdbc.driverClassName"));druidDataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));druidDataSource.setUsername(env.getProperty("ername"));druidDataSource.setPassword(env.getProperty("jdbc.password"));druidDataSource.setUrl(env.getProperty("jdbc.url"));//连接超时时间druidDataSource.setMaxWait(10000);//最⼤存活时间//druidDataSource.setMaxActive(10000);// 配置间隔多久才进⾏⼀次检测,检测需要关闭的空闲连接,单位是毫秒druidDataSource.setTimeBetweenEvictionRunsMillis(60000);//连接池中的最⼩⽣存时间druidDataSource.setMinEvictableIdleTimeMillis(300000);//这⾥建议配置为TRUE,防⽌取到的连接不可⽤druidDataSource.setTestOnBorrow(true);druidDataSource.setTestOnReturn(false);//⾃动提交druidDataSource.setDefaultAutoCommit(true);druidDataSource.setPoolPreparedStatements(true);druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(20);return druidDataSource;}// 配置SqlSessionFactory对象public SqlSessionFactoryBean getSqSesionFactorys() throws IOException {SqlSessionFactoryBean sqlSessionFactoryBean =new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(getDataSource());// sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml")); // 这⾥可以通过mybatis-config.xml 来设置 typeAliasPackage和mapper。

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。

创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。

springmvc+spring+mybatis整合

springmvc+spring+mybatis整合

springmvc+spring+mybatis整合首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。

然后我们就细细的一步一步来整合。

1 创建一个Web项目。

2 导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。

我所用的包:spring-websocket-4.2.0.RELEASE.jar3 创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。

4 配置web.xml1<?xml version="1.0" encoding="UTF-8"?>2<web-app version="2.5"3xmlns="/xml/ns/javaee"4xmlns:xsi="/2001/XMLSchema-instance" 5xsi:schemaLocation="/xml/ns/javaee6/xml/ns/javaee/web-app_2_5.xsd">78<!-- 告知javaEE容器,有哪些内容需要添加到上下文中去--> 9<context-param>10<param-name>contextConfigLocation</param-name> 11<param-value>12/WEB-INF/classes/applicationContext.xml,13<!-- /WEB-INF/classes/mvc-servlet.xml -->14</param-value>15</context-param>161718<!-- 加载LOG4J -->19<context-param>20<param-name>log4jConfigLocation</param-name> 21<param-value>/WEB-INF/log4j.xml</param-value>22</context-param>2324<context-param>25<param-name>log4jRefreshInterval</param-name> 26<param-value>60000</param-value>27</context-param>2829<!-- 动态设置项目的运行路径-->30<context-param>31<param-name>webAppRootKey</param-name>32<param-value>ssm.root</param-value>33</context-param>3435<!-- 配置静态资源-->36<servlet-mapping>37<servlet-name>default</servlet-name>38<url-pattern>/static/*</url-pattern>39</servlet-mapping>404142<!-- 配置springmvc的前端控制器-->43<servlet>44<servlet-name>mvc</servlet-name>45<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>46<!-- 默认情况下:DispatcherServlet会寻找WEB-INF下,命名规范为[servlet-name]-servlet.xml文件。

Spring+SpringMVC+Mybatis框架搭建步骤

Spring+SpringMVC+Mybatis框架搭建步骤

Spring + SpringMVC + Mybatis 框架搭建步骤1. 新建WEB 工程。

Creiate a Web ProjectCreate a web project in the workspace or an externa I locatFonContext root URL J /ssm p rojj eet J2EE £pe-ci fi caition LevelJava EE 。

Java EE 5.0• ; J2EE 1.4 i J2EE 1.3Maven71 Add Maven su pportMyEclip ,3i e Maven JEE Proje-ct Standard IMave-m JEE ProjectLumrn eqtl abiQut IM 日vumAMyEuliipwg^.. J STL SupportI Add J STL libraries to VtfEB-JINF/lib folder?Finish2.导入相关的 JAR 包(oracle 数据库)。

单由右键项H , 选择build path —» configure build path—》选择 Add Library —》User Library —》点击 next —》点击 User Libraries 一》新建(NEW ) —》输入 Library 名字(英文)一》点由 Add Jars 添加所需JAR 包一》点 OK 一》点finish oNew \A/eb Project Cancel惨改日期太小祥coin. MpNfiq 土白口fcft.jd V3M.i nje-et_l .O.O.jar 2013/10/30 SM56Win RAR丘璋文1牛 5 KB com mo ns- log girrg -1,1 Ja r 2014/9/3 9:20WinRAR压述文件52 KB激j5tl-l.l-2.jar 2014/9/3 9:20winRAR在靠K牛21 KB漕Iog4j-L.2.15jar 2015/5/11 16:20WinRAR SMSt件 3 03 K. B3 FT!ybotfS-3rO,5jor 2014/&/3 9:20WinRAR 牛621 KBmyb ati s -sp rin g Ja r2014/9/B 9:20WinRAR田心件27 KBmybatfs-3pring-l I0,0-R;C2Jar 2&13/1C/31 10;30WinRAR BS5S:件M KBojdb<14.jar 2014/9/3. 9-20WinRAR叫愤:件l r520 KBorg.springframewcrk.aQp-3,l P2.RELEr.. 2014/9/3 9;20WinRAR压海文件325 K0org.springframeworlcasm-2.1…2…REUE...2014/9/3 9120WinRAR田砂件52 KBorg.Epringframeworkubeans"3r1.2.REr.. 2014/9/a 9:30WinRAR 牛579 K0srg.s.pringtfAmework-cpnteKt.auppor»2014/9/3 9:20WinRAR庄林1牛1G5 KBorg.springframework.context-3.1.2.RL・.2014/9/3 9:20WinRAR压蜻交件813 KB 潺Qrg,Springfr^meworkccre-3-1,2-RELE,…2014/9/3 9:20WinRAR任国丈1牛440 K Borg.springframeworlGexpreESion-3.1...2014/9/3 9:20WinRAR. 件172 KBDrg,springfr0meworkjdbc-3,l P2,RELE. 2014/9/3 9:20WihRAR压髦立件396 KB^8 o rg.5pringfranmeworlctransaction-3.1..2014/9/3 9:20WinRAR田豪立件240 KBorg.springfra!mework.webr5ervlet-3,L—2014/9/3 9;20WinRAR压南文件564 KBorg.springframeworlGweb-3.LNR.ELE...2014/9/3 9:20WinRAR 田*件53fi KB 3. 将项目的业务逻辑分层:控制层、业务层、实体层、L1^3 Prefer^-irac-e-s- CFiltjr-r-edi)Dao 层。

SpringMVC+MyBatis(最新)

SpringMVC+MyBatis(最新)

目前主流的Web MVC框架,除了Struts这个主力外,还有Spring MVC,主要是由于Spring MVC配置比较简单,使用起来也十分明了,非常灵活,与Spring 集成较好,对RESTful API 的支持也比struts要好。

MyBatis是ibatis的升级版,作为hibernate的老对手,它是一个可以自定义SQL、存储过程和高级映射的持久层框架。

与hibernate的主要区别就是mybatis是半自动化的,而hibernate是全自动的,所以当应用需求越来越复杂的时候,自动化的sql显得比较笨拙。

由于前段时间接了个项目要用springmvc做,所以我抱着练手的态度,又玩起了整合框架的游戏。

经常搭框架的人应该都清楚,框架搭建的核心就是配置文件。

所以我主要贴下几个配置文件的代码。

还是那句话,我都是写好配置文件之后,运行报错再加jar。

这里列一下我用的jar包(应该是最少的):备注:上图有一些额外的jar,比如我用的数据库连接池是阿里巴巴的druid、日志框架式logback,所以引入了相关jar。

关于这两个框架的使用和配置都是非常简单的,所以这里就不细说。

1.整合SpringMVCspringMybatis-servlet.xml:[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<beans xmlns="/schema/beans"xmlns:xsi="http:///2001/XMLSchema-instance"3.xmlns:context="/schema/context"4.xmlns:mvc="/schema/mvc"5.xsi:schemaLocation="/schema/beans http:///schema/beans/spring-beans.xsd6. /schema/context http://www.springframe/schema/context/spring-context.xsd7. /schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">8.9.<!-- 启用spring mvc 注解-->10.<mvc:annotation-driven>11.</mvc:annotation-driven>12.13.<!-- 自动扫描的包名,使Spring支持自动检测组件,如注解的Controller-->14.<context:component-scan base-package="com.alibaba.controller"/>15.<context:component-scan base-package="com.alibaba.service"/>16.17.18.<!-- 视图解析器:定义跳转的文件的前后缀 -->19.<bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver">20.<property name="prefix"value="/WEB-INF/jsp/"/>21.<property name="suffix"value=".jsp"/><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->22.</bean>23.24.<!--配置拦截器, 多个拦截器,顺序执行 -->25.<mvc:interceptors>26.<mvc:interceptor>27.<!-- 匹配的是url路径 -->28.<mvc:mapping path="/"/>29.<mvc:mapping path="/user/**"/>30.<mvc:mapping path="/test/**"/>31.32.<bean class="monInterceptor"></bean>33.</mvc:interceptor>34.<!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->35.</mvc:interceptors>36.37.</beans>2.整合Mybatisspring-dao.xml:[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<beans xmlns="/schema/beans"xmlns:xsi="http:///2001/XMLSchema-instance"3.xmlns:mybatis="/schema/mybatis-spring"4.xmlns:context="/schema/context"5.xsi:schemaLocation="/schema/beans http:///schema/beans/spring-beans.xsd6. /schema/mybatis-spring /schema/mybatis-spring.xsd7. /schema/context http://www.springframew/schema/context/spring-context.xsd">8.9.<!-- 该包下的类支持注解,表示会被当作{@code mybatis mapper}处理配置了之后表示可以自动引入mapper类-->10.<mybatis:scan base-package="com.alibaba.dao"/>11.<!--引入属性文件 -->12.<context:property-placeholder location="classpath:configuration.properties"/>13.14.<!--数据库连接-->15.<bean id="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close">16.<property name="url"value="${jdbc.url}"/>17.<property name="username"value="${ername}"/>18.<property name="password"value="${jdbc.password}"/>19.<!-- 配置初始化大小、最小、最大 -->20.<property name="initialSize"><value>1</value></property>21.<property name="maxActive"><value>5</value></property>22.<property name="minIdle"><value>1</value></property>23.<!-- 配置获取连接等待超时的时间 -->24.<property name="maxWait"><value>60000</value></property>25.<!-- 配置监控统计拦截的filters -->26.<property name="filters"><value>stat</value></property>27.<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->28.<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property>29.<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->30.<property name="minEvictableIdleTimeMillis"><value>300000</value></property>31. <!--32.<property name="validationQuery"><value>SELECT 'x'</value></property>33.<property name="testWhileIdle"><value>true</value></property>34.<property name="testOnBorrow"><value>false</value></property>35.<property name="testOnReturn"><value>false</value></property>36.<property name="poolPreparedStatements"><value>true</value></property>37.<property name="maxOpenPreparedStatements"><value>20</value></property>38. -->39.</bean>40.41.<!-- mybatis配置 -->42.<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">43.<property name="dataSource"ref="dataSource"/>44.</bean>45.</beans>3.web.xml整合SpringMVC和Mybatis[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<web-app xmlns:xsi="http://www.w/2001/XMLSchema-instance"xmlns="http:///xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee http:///xml/ns/javaee/web-app_3_0.xsd"version="3.0">3.<!--该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问http://localhost/foo.css,现在http://localhost/static/foo.css-->4.<!-- 不拦截静态文件 -->5.<servlet-mapping>6.<servlet-name>default</servlet-name>7.<url-pattern>/js/*</url-pattern>8.<url-pattern>/css/*</url-pattern>9.<url-pattern>/images/*</url-pattern>10.<url-pattern>/fonts/*</url-pattern>11.</servlet-mapping>12.13.<!-- 配置字符集 -->14.<filter>15.<filter-name>encodingFilter</filter-name>16.<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>17.<init-param>18.<param-name>encoding</param-name>19.<param-value>UTF-8</param-value>20.</init-param>21.<init-param>22.<param-name>forceEncoding</param-name>23.<param-value>true</param-value>24.</init-param>25.</filter>26.<filter-mapping>27.<filter-name>encodingFilter</filter-name>28.<url-pattern>/*</url-pattern>29.</filter-mapping>30.31. <!-- 初始化 DispatcherServlet时,该框架在 web应用程序WEB-INF目录中寻找一个名为[servlet-名称]-servlet.xml的文件,32.并在那里定义相关的Beans,重写在全局中定义的任何Beans -->33.<servlet>34.<servlet-name>springMybatis</servlet-name>35.<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>36.<load-on-startup>1</load-on-startup>37.</servlet>38.<servlet-mapping>39.<servlet-name>springMybatis</servlet-name>40.<!-- 所有的的请求,都会被DispatcherServlet处理 -->41.<url-pattern>/</url-pattern>42.</servlet-mapping>43.44.<context-param>45.<param-name>contextConfigLocation</param-name>46.<param-value>/WEB-INF/config/spring-*.xml</param-value>47.</context-param>48.<listener>49.<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>50.</listener>51.<!-- druid web 监控 -->52.<servlet>53.<servlet-name>DruidStatView</servlet-name>54.<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>55.</servlet>56.<servlet-mapping>57.<servlet-name>DruidStatView</servlet-name>58.<url-pattern>/druid/*</url-pattern>59.</servlet-mapping>60.61.<error-page>62.<error-code>404</error-code>63.<location>/error/404.jsp</location>64.</error-page>65.<error-page>66.<error-code>500</error-code>67.<location>/error/500.jsp</location>68.</error-page>69.</web-app>4.logback.xml日志配置[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<configuration>3.4.<appender name="STDOUT"class="ch.qos.logback.core.ConsoleAppender">5.<encoder>6.<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>7.</encoder>8.</appender>9.10.<logger name="test.LogbackTest"level="TRACE"/>11.12.<logger name="com.alibaba.controller.TestController"level="TRACE"/>13.14.<logger name="org.springframework.web.servlet.DispatcherServlet"level="DEBUG"/>15.<logger name="druid.sql"level="INFO"/><!-- 如果spring-config里面没有配置slf4j,就不会显示sql日志,logback只是slf4j的一个实现 -->16.<root level="debug">17.<appender-ref ref="STDOUT"/>18.</root>19.</configuration>5.configuration.properties配置[html]view plaincopyprint?1.jdbc.url=jdbc\:mysql\://localhost\:3306/druid?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNullername=root3.jdbc.password=1234566.测试搭建是否成功,后台代码首先是登录,用了加密,可以去掉[java]view plaincopyprint?1.package com.alibaba.controller;2.3.4.import javax.annotation.Resource;5.import javax.servlet.http.HttpServletRequest;6.7.import mons.codec.digest.DigestUtils;8.import org.slf4j.Logger;9.import org.slf4j.LoggerFactory;10.import org.springframework.stereotype.Controller;11.import org.springframework.web.bind.annotation.RequestMapping;12.import org.springframework.web.bind.annotation.RequestMethod;13.import org.springframework.web.bind.annotation.RequestParam;14.15.import er;16.import erService;17.import com.alibaba.util.RequestUtil;18.19./**20. * @author tfj21. * 2014-7-2622. */23.@Controller24.public class SystemController {25.private final Logger log = LoggerFactory.getLogger(SystemController.class);26.@Resource27.private UserService userService;28.29.@RequestMapping(value = "/",method = RequestMethod.GET)30.public String home() {31. ("返回首页!");32.return"index";33. }34.35.@RequestMapping(value = "/test/hello",method = RequestMethod.GET)36.public String testHello() {37. ("执行了testHello方法!");38.return"testHello";39. }40.41.@RequestMapping(value = "/login",method = RequestMethod.POST)42.public String testLogin(HttpServletRequest request,@RequestParam Stringusername, @RequestParam String password) {43. ("执行了testLogin方法!");44. User user = userService.findUserByName(username);45.if(user!=null){46.if(user.getPassword().equals(DigestUtils.md5Hex(password))){47. request.getSession().setAttribute("userId", user.getId());48. request.getSession().setAttribute("user", username);49.return"redirect:" + RequestUtil.retrieveSavedRequest();//跳转至访问页面50. }else{51. ("密码错误");52. request.getSession().setAttribute("message", "用户名密码错误,请重新登录");53.return"login";54. }55. }else{56. ("用户名不存在");57. request.getSession().setAttribute("message", "用户名不存在,请重新登录");58.return"login";59. }60. }61.}关于service和model就不写了,写一下mybatis的mapper类映射[html]view plaincopyprint?1.<?xml version="1.0"encoding="UTF-8"?>2.<!DOCTYPE mapper PUBLIC "-////DTD Mapper3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">3.<mapper namespace="erMapper">4.<select id="findUserByName"resultType="er">5. select id, username , password from sysuser where username = #{username}6.</select>7.</mapper>。

spring+springmvc+mybatis组合总结

spring+springmvc+mybatis组合总结

spring+springmvc+mybatis组合总结springmvc+spring+mybatis整合:1. 拷贝所需jar2. 创建spring配置⽂件(beans.xml)3. 配置数据源<bean id="dataSource" class="mons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property><property name="username" value="root"></property><property name="password" value=""></property></bean>4.创建SqlSessionFactory实例:<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 指定数据源 --><property name="dataSource" ref="dataSource"/><!-- 指定mybatis的配置⽂件 --><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!--映射接⼝扫描mapper包下的所有xml⽂件 mapper是个包名应该是在main测试的时候才使⽤--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.liu.mapper"></property></bean>5. 配置事务<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean>6. 配置事务的传播特性<tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="find*" read-only="true"/><tx:method name="get*" read-only="true"/><tx:method name="query*" read-only="true"/><tx:method name="add*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="del*" propagation="REQUIRED"/></tx:attributes></tx:advice>7. 配置AOP<!-- 配置AOP --><aop:config><!--配置切⾯必须要有空格 *空格 ssmy 否则会报错--><aop:config><aop:pointcut expression="execcution(*空格 ssmy.service.impl.*.*(..))" id="pointcut"/><aop:advisor advice-ref="txadvice" pointcut-ref="pointcut"/></aop:config>9. 配置DispatcherServlet<!-- 配置Spring核⼼控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>10. 创建springmvc-servlet.xml配置⽂件:<!-- 注解扫描器 --><context:component-scan base-package="com.liu"/><!-- 配置试图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean><import resource="classpath:beans.xml"/>。

SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。

1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。

MyBaits Spring MVC JSP零基础搭建Web开发框架(注解模式)

MyBaits Spring MVC JSP零基础搭建Web开发框架(注解模式)

MyBaits Spring MVC JSP零基础搭建Web开发框架(注解模式)搭建开发环境:Netbeans8.0.2 + MySql5.6 + JDK1.7 + tomcat8.0.15本次采用的Spring MVC Jar包如下:spring-aop-4.1.3.RELEASE.jarspring-beans-4.1.3.RELEASE.jarspring-context-4.1.3.RELEASE.jarspring-context-support-4.1.3.RELEASE.jarspring-core-4.1.3.RELEASE.jarspring-expression-4.1.3.RELEASE.jarspring-jdbc-4.1.3.RELEASE.jarspring-oxm-4.1.3.RELEASE.jarspring-tx-4.1.3.RELEASE.jarspring-web-4.1.3.RELEASE.jarspring-webmvc-4.1.3.RELEASE.jar当然还有其他的依赖jar,如有需要请留下邮箱~!1.首先创建Web项目web.mvc2.引入所有的jar文件3.配置web.xml做web开发的都知道,web.xml是项目的入口,我们既然使用spring那么当然要添加Spring 的支持啦!spring默认加载的是applicationContext.xml,由于我们需要集成MyBatis所以我把Spring的配置文件强制指定名称,并与MyBatis一起配置,减少配置文件数量先指定spring配置文件名名称与路径[html]view plaincopyprint?1.<!-- Spring 上下文参数加载Spring配置文件 -->2.<context-param>3.<param-name>contextConfigLocation</param-name>4.<param-value>classpath*:xmlconfig/springmvc-mybatis.xml</param-value>5.</context-param>再执行Spring上下文监听配置[html]view plaincopyprint?1.<listener>2.<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>3.</listener>添加支持Spring mvc 的配置说明:添加支持目前有3种方式。

spring+spring mvc+mybits框架整合

spring+spring mvc+mybits框架整合

主要介绍三大框架的整合,至于环境的搭建以及项目的创建可以参考其他资料。

这次整合主要用到两个配置文件:spring-mybatis.xm,包含spring和mybatis的配置文件,还有个是spring-mvc.xml的配置文件,此外有两个资源文件:jdbc.propertis和log4j.properties。

完整的目录结构如下图:本框架中用到的所有jar包都在源码中。

本测试项目中用到的是sqlserver数据库,MyEclipse 8.6和apache-tomcat-7.0.41下来逐一介绍配置文件:1、spring-mybatis.xml这个文件就是用来完成spring和mybatis的整合的。

这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库,注释也很详细<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.1.xsd/schema/context/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.myProcess.study"/><!-- 引入配置文件 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"value="classpath:jdbc.properties"/> </bean><bean id="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName"value="${driver}"/><property name="url"value="${url}"/><property name="username"value="${username}"/><property name="password"value="${password}"/><!-- 初始化连接大小 --><property name="initialSize"value="${initialSize}"></property><!-- 连接池最大数量 --><property name="maxActive"value="${maxActive}"></property><!-- 连接池最大空闲 --><property name="maxIdle"value="${maxIdle}"></property><!-- 连接池最小空闲 --><property name="minIdle"value="${minIdle}"></property><!-- 获取连接最大等待时间 --><property name="maxWait"value="${maxWait}"></property></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"ref="dataSource"/><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations"value="classpath:com/myProcess/study/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage"value=".hnust.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>2、log4j.propertieslog4j.rootLogger=INFO,Console,File#定义日志输出目的地为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out#可以灵活地指定日志输出格式,下面一行是指定具体的格式yout = org.apache.log4j.PatternLayoutyout.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 = ALLyout = org.apache.log4j.PatternLayoutyout.ConversionPattern =[%p][%d{yyyy-MM-ddHH\:mm\:ss}][%c]%m%n3、spring-mvc.xml主要是自动扫描控制器,视图模式,注解的启动这三个<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.1.xsd/schema/context/schema/context/spring-context-3.1.xsd/schema/mvc/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --><context:component-scan base-package="com.myProcess.study.web"/><!--避免IE执行AJAX时,返回JSON出现下载文件 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConvert er"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean><!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAd apter"><property name="messageConverters"><list><ref bean="mappingJacksonHttpMessageConverter"/><!-- JSON转换器 --></list></property></bean><!-- 定义跳转的文件的前后缀,视图模式配置--><beanclass="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="monsMultipartResolver"> <!-- 默认编码 --><property name="defaultEncoding"value="utf-8"/><!-- 文件大小最大值 --><property name="maxUploadSize"value="10485760000"/><!-- 内存中的最大值 --><property name="maxInMemorySize"value="40960"/></bean></beans>4、web.xml这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。

使用Eclipse搭建SSM框架(Spring+SpringMVC+Mybatis)

使用Eclipse搭建SSM框架(Spring+SpringMVC+Mybatis)

使⽤Eclipse搭建SSM框架(Spring+SpringMVC+Mybatis)1.创建项⽬1)打开Eclipse,点击File --> New --> Other2)输⼊maven,找到Maven Project3)然后⼀直按Next,直到出现⼀下界⾯:4)输⼊web后点击Aftifact Id为maven-archetype-webapp的选项,然后继续Next5)然后输⼊你的Group Id和项⽬名,点击finish6)项⽬创建好之后可能会出现如下情况:这是因为项⽬中缺少Tomcat有关jar包导致的,接下来我们就来解决这个问题,右键单击项⽬,选择Build Path --> Add Library --> Server Runtime,然后点击Next然后选择你要的Tomcat容器,点击Finish这个时候问题就解决了7)更改Dynamic Web Module和jdk版本号。

更改之前是这样的:⽽我电脑⾥配的Java环境是jdk1.8的,Tomcat的版本是9.0,可以将Dynamic Web Module版本改成3.1,但是不能直接在上⾯更改,接下来我就详细讲⼀下怎么更改这两个版本:⾸先找到你那个项⽬所在的路径,打开那个项⽬⽂件夹之后找到.settings⽂件夹,这个在你那⾥也可能被隐藏,记得打开显⽰隐藏⽂件夹的选项然后进⼊.settings⽂件夹,找到mon.project.facet.core.xml⽂件打开⽂件后改成你对应的版本 更改前》》》》》》》》 更改后》》》》》》》然后回到eclipse中,找到web.xml⽂件,将其修改为(对应Dynamic Web Module修改后的版本,我这⾥是3.1):<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd"version="3.1" metadata-complete="true"></web-app>第四部修改pom.xml⽂件(对应修改后的jdk版本),将其修改为:<build><plugins><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>最后右击项⽬,选择Maven --> Update Project弹出界⾯后勾选你当前的项⽬点击OK即可2.导⼊SSM项⽬所需要的jar包<project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>ssm</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>ssm Maven Webapp</name><url></url><properties><!-- Spring版本号 --><spring.version>4.3.8.RELEASE</spring.version></properties><dependencies><!-- Spring相关包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</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</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-webmvc</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-tx</artifactId><version>${spring.version}</version></dependency><!-- AOP相关包 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.8.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.0</version><!-- MyBatis相关包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency><!-- MySQL相关包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.26</version></dependency><!-- 数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.20</version></dependency><!-- Spring集成MyBatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.5.2</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.2</version></dependency><!-- JSP标准标签库 --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- ⽇志相关包 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.21</version></dependency><!-- 单元测试相关包 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- spring对测试框架的简单封装功能 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></plugins></build></project>3.完善项⽬结构相信⼤家细⼼的话都会发现,之前创建的项⽬⽬录少了⼀些东西:src/main/java 、src/test/java 、src/test/resources如果⼤家的情况和我⼀样的话,⾸先我们右击项⽬,选择 Build Path --> Configure Build Path,进⼊界⾯将有错误的⽂件Remove后点击Apply And Close然后右击项⽬,选择 New --> Source Folder输⼊名字后点击Finish,依次将缺失的⼏个补齐补齐之后,再右击项⽬,选择 Build Path --> Configure Build Path,进⼊界⾯,找到先前补齐的⽂件,更改Output Folder输出路径依次更改好之后点击Apply And Close将以上步骤做好之后,再右击项⽬,选择Properties,找到Deployment Assembly,移除以下两个⽂件夹后点击Apply And Close 4.创建配置⽂件log4j.properties⽂件:#USE THIS SETTING FOR OUTPUT MYBATIS`s SQL ON THE CONSOLElog4j.rootLogger=INFO, Console#Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFO.apache=INFOlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings><!-- 设置别名,对应实体类包名 --><typeAliases><package name="com.zqz.pojo"/></typeAliases></configuration>spring-mvc.xml⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd/schema/context /schema/context/spring-context.xsd/schema/mvc /schema/mvc/spring-mvc.xsd"><!-- 启动⾃动扫描 --><context:component-scan base-package="com.zqz.*"/><!-- 注册MVC注解驱动 --><mvc:annotation-driven /><!-- 静态资源可访问的设置⽅式 --><mvc:default-servlet-handler /><!-- 配置视图解析器,可以显式设置,也可以不设置,不设置会依据SpringMVC的默认设置 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><ref bean="jsonHttpMessageConverter"/></list></property></bean><bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value></list></property></bean></beans>spring-mybatis.xml⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!-- 指定扫描的包,对应service的实现类的包 --><context:component-scan base-package="com.zqz.students.service.impl"/><!-- Druid --><bean id="dataSource"class="com.alibaba.druid.pool.DruidDataSource"><property name="url"value="jdbc:mysql://localhost:3306/students?useUnicode=true&amp;characterEncoding=UTF-8"/> <property name="username" value="debian-sys-maint"/><property name="password" value="kzM7KVhkozRHJGp5"/></bean><!-- 注册SqlSessionFactoryBean --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><!-- ⾃动扫描mappers.xml⽂件 --><property name="mapperLocations"value="classpath*:com/zqz/dao/*.xml"/><property name="configLocation"value="classpath:mybatis-config.xml"></property></bean><!-- DAO接⼝所在包名,Spring会⾃动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.zqz.dao"/><property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean></beans>spring-tx.xml⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd/schema/context /schema/context/spring-context.xsd/schema/aop /schema/aop/spring-aop.xsd/schema/tx /schema/tx/spring-tx.xsd"><!-- 开启AOP注解扫描 --><aop:aspectj-autoproxy proxy-target-class="true"/><!-- 事务管理器,依赖于数据源 --><bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- 编写通知:对事务进⾏增强(通知),需要编写对切⼊点和具体执⾏事务细节 --><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><!--为切⼊点⽅法添加事务详情name:⽅法名,*表⽰任意⽅法名称propagation:设置传播⾏为isolation:设置隔离级别read-only:是否只读--><tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT" read-only="false" rollback-for="Exception"/> <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" read-only="false" rollback-for="Exception"/> <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" read-only="false" rollback-for="Exception"/> </tx:attributes></tx:advice><!-- 设置AOP,让Spring⾃动对⽬标⽣成代理,需要使⽤AspectJ表达式 --><aop:config proxy-target-class="true"><!-- 切⾯:整合切⼊点和通知 --><aop:advisor advice-ref="txAdvice" pointcut="within(com.zqz.controller..*)"/></aop:config></beans><?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd" version="3.1" metadata-complete="true"><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/spring-mybatis.xml,classpath*:/spring-tx.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener><servlet><servlet-name>springServlet</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>2</load-on-startup></servlet><servlet-mapping><servlet-name>springServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><session-config><session-timeout>20</session-timeout></session-config></web-app>到这⾥整合也就完成了,只剩编写具体的业务代码了。

Spring+SpringMVC+Mybatis(SSM)Demo(入门详细步骤)

Spring+SpringMVC+Mybatis(SSM)Demo(入门详细步骤)

Spring+SpringMVC+Mybatis(SSM)Demo(⼊门详细步骤) 菜鸟⼀枚,刚刚接触Spring不久,前段时间按照⽹上的demo写了下SSM,发现好多都不懂,好不容易程序能运⾏,也能出应有的结果,但想再次安全靠⾃⼰写⼀遍,各个步骤完全记不住,因此发⼀随笔做好记录,⽅便后续查看。

该随笔按我⾃⼰的步骤⼀⼀记录下来,内容包括SpringMVC的配置,以及mybatis generator⾃动⽣成xml配置、entity、dao层等信息。

本⼯程的编辑器⽤的是IDEA,数据库⽤的MySQL。

⼀、新建⼯程1、运⾏IDEA,选择创建⼀个新⼯程,选择maven,创建对应的java web项⽬。

2、填写GroupId和ArtifactId3、配置本地maven仓库(我这⾥已经配置过了,所以显⽰如下)更改maven的本地仓库——更改C:\Users\⽤户名\.m2\setting.xml⽂件(如果没有该⽂件,可以去“idea安装⽬录\plugins\maven\lib\maven3\conf”下复制过来,该⽬录是在安装idea时选择安装maven插件时⾃动⽣成的)中添加<localRepository>本地仓库地址</localRepository>4、填写⼯程名完成⼯程的创建。

5、为了去除spring等框架版本和jdk版本不兼容问题,在settings⾥修改⼯程的jdk版本。

6、更改项⽬结构(图中的xml⽂件都是后续创建的,可以不管)- java 主Java代码⽂件夹 - controller 控制器⽂件⽂件夹 - dao 数据访问层⽂件夹 - service 业务逻辑层⽂件夹 - entity 实体层⽂件夹- resources 资源⽂件夹(要将此定义为Sources Root,不然classpath不会指向该⽬录,卡了本菜鸟好久=_=。

右键选择Mark directory as-->Sources Root-->显⽰) - mapper mybatis sql⽂件夹- webapp web页⾯⽂件夹 -WEB-INF web应⽤的安全⽬录- test 测试⽂件夹⼆、Maven包的初始化1、修改pom.xml配置⽂件相关jar包的⾃动导⼊参考配置如下:1<?xml version="1.0" encoding="UTF-8"?>23<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"4 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">5<modelVersion>4.0.0</modelVersion>67<groupId>com.mycompany.app</groupId>8<artifactId>Demo</artifactId>9<version>1.0-SNAPSHOT</version>10<packaging>war</packaging>1112<name>Demo Maven Webapp</name>13<!-- FIXME change it to the project's website -->14<url></url>1516<dependencies>17<dependency>18<groupId>junit</groupId>19<artifactId>junit</artifactId>20<version>4.12</version>21<scope>test</scope>22</dependency>23<dependency>24<groupId>org.springframework</groupId>25<artifactId>spring-core</artifactId>26<version>4.3.5.RELEASE</version>27</dependency>28<dependency>29<groupId>org.springframework</groupId>30<artifactId>spring-aop</artifactId>31<version>4.3.5.RELEASE</version>32</dependency>33<dependency>34<groupId>org.springframework</groupId>35<artifactId>spring-orm</artifactId>36<version>4.3.5.RELEASE</version>37</dependency>38<dependency>39<groupId>org.springframework</groupId>40<artifactId>spring-tx</artifactId>41<version>4.3.5.RELEASE</version>42</dependency>43<dependency>44<groupId>org.springframework</groupId>45<artifactId>spring-test</artifactId>46<version>4.3.5.RELEASE</version>47</dependency>48<dependency>49<groupId>org.springframework</groupId>50<artifactId>spring-mock</artifactId>51<version>2.0.8</version>52</dependency>53<dependency>54<groupId>org.springframework</groupId>55<artifactId>spring-jdbc</artifactId>56<version>4.3.5.RELEASE</version>57</dependency>58<dependency>59<groupId>org.springframework</groupId>60<artifactId>spring-context</artifactId>61<version>4.3.5.RELEASE</version>62</dependency>63<dependency>64<groupId>org.springframework</groupId>65<artifactId>spring-context-support</artifactId>66<version>4.3.5.RELEASE</version>67</dependency>68<dependency>69<groupId>org.springframework</groupId>70<artifactId>spring-expression</artifactId>71<version>4.3.5.RELEASE</version>72</dependency>73<!--Spring Web + Spring MVC-->74<dependency>75<groupId>org.springframework</groupId>76<artifactId>spring-web</artifactId>77<version>4.3.1.RELEASE</version>78</dependency>79<dependency>80<groupId>org.springframework</groupId>81<artifactId>spring-webmvc</artifactId>82<version>4.3.1.RELEASE</version>83</dependency>84<dependency>85<groupId>com.github.pagehelper</groupId>86<artifactId>pagehelper</artifactId>87<version>3.7.3</version>88</dependency>89<dependency>90<groupId>com.github.jsqlparser</groupId>91<artifactId>jsqlparser</artifactId>92<version>0.9.1</version>93</dependency>94<!--mysql jdbc-->95<dependency>96<groupId>mysql</groupId>97<artifactId>mysql-connector-java</artifactId>98<version>5.1.38</version>99</dependency>100<!--c3p0-->101<dependency>102<groupId>c3p0</groupId>103<artifactId>c3p0</artifactId>104<version>0.9.1.2</version>105</dependency>106<!--NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config--> 107<!-- https:///artifact/jstl/jstl -->108<dependency>109<groupId>jstl</groupId>110<artifactId>jstl</artifactId>111<version>1.2</version>113<!--file upload jar package-->114<!-- https:///artifact/commons-fileupload/commons-fileupload -->115<dependency>116<groupId>commons-fileupload</groupId>117<artifactId>commons-fileupload</artifactId>118<version>1.3.1</version>119</dependency>120<!-- https:///artifact/commons-io/commons-io -->121<dependency>122<groupId>commons-io</groupId>123<artifactId>commons-io</artifactId>124<version>2.4</version>125</dependency>126<!-- https:///artifact/commons-lang/commons-lang -->127<dependency>128<groupId>commons-lang</groupId>129<artifactId>commons-lang</artifactId>130<version>2.6</version>131</dependency>132<!-- https:///artifact/commons-beanutils/commons-beanutils -->133<dependency>134<groupId>commons-beanutils</groupId>135<artifactId>commons-beanutils</artifactId>136<version>1.8.3</version>137</dependency>138<!-- https:///artifact/commons-collections/commons-collections -->139<dependency>140<groupId>commons-collections</groupId>141<artifactId>commons-collections</artifactId>142<version>3.2.1</version>143</dependency>144<!-- https:///artifact/commons-logging/commons-logging -->145<dependency>146<groupId>commons-logging</groupId>147<artifactId>commons-logging</artifactId>148<version>1.2</version>149</dependency>150<!-- https:///artifact/net.sf.ezmorph/ezmorph -->151<dependency>152<groupId>net.sf.ezmorph</groupId>153<artifactId>ezmorph</artifactId>154<version>1.0.6</version>155</dependency>156<!--json serialize and deserialization-->157<!-- 引⼊fastjson依赖 -->158<dependency>159<groupId>com.alibaba</groupId>160<artifactId>fastjson</artifactId>161<version>1.2.12</version>162</dependency>163<!-- 引⼊gson依赖 -->164<dependency>165<groupId>com.google.code.gson</groupId>166<artifactId>gson</artifactId>167<version>2.6.2</version>168</dependency>169<!--Base64 加解密-->170<!-- https:///artifact/net.iharder/base64 -->171<dependency>172<groupId>net.iharder</groupId>173<artifactId>base64</artifactId>174<version>2.3.8</version>175</dependency>176<!-- https:///artifact/commons-codec/commons-codec -->177<dependency>178<groupId>commons-codec</groupId>179<artifactId>commons-codec</artifactId>180<version>1.10</version>181</dependency>182<!--log4j-->183<!-- https:///artifact/org.apache.logging.log4j/log4j-core -->184<dependency>185<groupId>org.apache.logging.log4j</groupId>186<artifactId>log4j-core</artifactId>187<version>2.6.2</version>188</dependency>189<dependency>190<groupId>org.jetbrains</groupId>191<artifactId>annotations-java5</artifactId>192<version>RELEASE</version>193</dependency>194<!--mybatis 应⽤mybatis需要导⼊mybatis,将mybatis和spring整合在⼀起需要导⼊mybatis-spring--> 195<dependency>196<groupId>org.mybatis</groupId>197<artifactId>mybatis</artifactId>198<version>3.3.0</version>199</dependency>200<dependency>201<groupId>org.mybatis</groupId>202<artifactId>mybatis-spring</artifactId>203<version>1.2.3</version>204</dependency>205<dependency>206<groupId>org.mybatis.generator</groupId>207<artifactId>mybatis-generator-core</artifactId>208<version>1.3.2</version>209</dependency>211212<build>213<finalName>Demo</finalName>214<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->215<plugins>216<plugin>217<artifactId>maven-clean-plugin</artifactId>218<version>3.0.0</version>219</plugin>220<!-- see /ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->221<plugin>222<artifactId>maven-resources-plugin</artifactId>223<version>3.0.2</version>224</plugin>225<plugin>226<artifactId>maven-compiler-plugin</artifactId>227<version>3.7.0</version>228</plugin>229<plugin>230<artifactId>maven-surefire-plugin</artifactId>231<version>2.20.1</version>232</plugin>233<plugin>234<artifactId>maven-war-plugin</artifactId>235<version>3.2.0</version>236</plugin>237<plugin>238<artifactId>maven-install-plugin</artifactId>239<version>2.5.2</version>240</plugin>241<plugin>242<artifactId>maven-deploy-plugin</artifactId>243<version>2.8.2</version>244</plugin>245</plugins>246</pluginManagement>247</build>248</project>View Code三、SpringMVC的配置1、(⼀般在resource⽂件夹或者WEB-INF⽂件夹)新建spring-servlet.xml⽂件(⽂件名称⼀般为“xxx-servlet.xml”),声明SpringMVC框架对控制器、页⾯、资源的访问。

基于Maven的Spring + Spring MVC + Mybatis的环境搭建

基于Maven的Spring + Spring MVC + Mybatis的环境搭建

老大想要做一个TimeSheet的东西,要管理公司员工每年的时间和effort. 反正还要个什么报表,老大发话了,很荣幸我有此机会又可以和刚进公司带我的老大一起做东西了,感觉很好。

不过这个项目是一个partime job,自己在工作中抽时间来做。

当然啦,堆码的事情肯定我来搞定啦。

项目开发,需求不是我定,所以在等待需求的时候,我就将环境先搭建起来。

上次做了一个Spring + Spring MVC + Mybatis + Log4J + JUnit Test的环境搭建,这次也差不多,不过就是基于了Maven,同时也添加了事务管理。

首先,可以去了解一下maven,个人觉得这个东西就是JAR包管理方便,不用自己一个个去写,直接添加dependence就行了,不过有时候要注意哟,有可能重复的包含了某个JAR包,会报冲突的哟,亲!因为只有一个POM文件里指定JAR包,所以整个项目都很小的,一般就几MB,只有你在将该项目打成WAR包的时候,maven会自动的把三方JAR包放进项目,然后你就可以去部署到Tomcat的webapp下面了,放进去,重启Tomcat就OK。

1.开始搭建我的环境吧。

首先,IDE我用的是eclipse的JEE版本。

要保证装上了Maven哟,可以使用eclipse的Install New Software,URL地址是/sites/m2e/,然后一步步走下去,安装好了过了会重启一次。

给一个忠告哟,安装好了maven后,不要使用IDE里面的了,而是去官方下载一个,解压,然后让IDE的Maven指向你下载安装的,如图:2.maven安装成功了,我们用Maven创建一个新的WEB项目。

File—> New—> Other—>Maven Project.选默认,下一步。

在Select an Archetype里面种找到如下图所示3.然后next,输入groupId:net.yuanmomo;artifactId:Test,然后finish,稍微等待一下,就创建好了。

SpringMVC+Mybatis+extjs4项目配置

SpringMVC+Mybatis+extjs4项目配置

SpringMVC+Mybatis+extjs4项目配置1)软件准备:1.Jdk6:这个需要统一一下,如果用高于jdk6得版本开发,到发布到tomcat服务器后可能运行不正常,在ide上的高版本到低版本的话,也可能出现编译错误的问题,这个要跟生产环境统一起来;2.Tomcat6(7):这个好像关系不太大,主要看生产环境,但如果页面使用了el表达式的话,则需要用高一点的tomcat服务器,低版本的tomcat对el表达式不支持;3.springsource-tool-suite:开发的ide,推荐使用zip安装包,版本2.9的吧,现在的3.1不是很稳定,占用内存很高,经常不响应2)springMVC相关库(jar)配置1.jar的引用主要配置在maven的pom.xml文件了,整个项目都是用pom.xml文件来组织的,如下图:实际项目的结果如:有点不同,所有的代码是放在src文件夹里的,main/webapp文件夹则对应于发布到tomcat 应用的文件夹,所有如果要提交svn,则只需要提交src里的代码,如果改动了非*.java代码,也只要更新webapp目录里改动文件至tomcat相应目录就行了;2.配置pom.xml可能用到的jar包:1)Mybatis:数据库持续层;<dependency><groupId>org.mybatis</groupId><version>1.1.1</version></dependency>2)Mysql:数据库的jdbc的jar包;<dependency><version>5.1.21</version></dependency>3)其他可能用得到的jar包:zip(org.apache.ant),json转换(com.alibaba),文件上传组件(commons-fileupload,commons-io)<dependency><groupId>com.alibaba</groupId><version>1.1.22</version></dependency><dependency></dependency><!-- File Upload --><dependency><version>1.2.2</version></dependency><dependency><version>2.0.1</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><version>1.4.2</version></dependency>4)当改动pom.xml文件后,maven会自动更新项目的jar包,并更新至项目里的引用,如下图:3.项目里配置当把需要用到的jar包引用之后,spring框架里可以使用jar包里面的类,但有些jar包时需要spring的运行时自动加载到mvc运行环境中的,比如数据库持续层mybatis1)Mybatis配置:<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" />rEncoding=UTF-8&amp;useUnicode=true" /><property name="password" value="123456" /></bean><!-- 配置SqlSessionFactoryBean --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryB ean"><property name="dataSource"ref="dataSource"/><property name="configLocation"value="classpath:mybatis.xml"/> </bean><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource. DataSourceTransactionManager"><property name="dataSource"ref="dataSource"/></bean><!-- 配置事务的传播特性 --><bean id="baseTransactionProxy"class="org.springframework.transaction.in terceptor.TransactionProxyFactoryBean"abstract="true"><property name="transactionManager"ref="transactionManager"/><property name="transactionAttributes"><props><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="edit*">PROPAGATION_REQUIRED</prop><prop key="remove*">PROPAGATION_REQUIRED</prop><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="del*">PROPAGATION_REQUIRED</prop><prop key="*">readOnly</prop></props></property></bean><!-- 通过扫描的模式,扫描目录 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage"value="com.spring.wlanmis.data.mapper"/></bean>上面的配置主要是:数据库连接,mybatis.xml,MapperScannerConfigurer(数据库Mapping扫描目录,项目的包结构如下:可以这样看,entity里的类一般要配置在mybatis.xml里,mapper里的文件是成对的,一个是xxx.xml文件,另一个是xxx.java(接口)文件,并mapper必须在配置root-content.xml 里的org.mybatis.spring.mapper.MapperScannerConfigurer中,不然mybatis组件就不能实例化2)其他的配置配置文件上传,详细代码可以查看FileUploadController.java<bean id="multipartResolver"class="monsMultipartResolv er"><property name="maxUploadSize"value="8000000"/></bean>剩下的就只是一些普通的javabean配置了,只是为了配置项目的全局参数,类似于ftpScanRunner3)前端extjs的配置:前端比较简单,只是在页面里设置引用,修改后也不用编译代码,发布时可以直接更新到服务器里相应目录进行覆盖,一般引用如下图项目里文件目录结构如下:具体的extjs4的前端mvc框架,还是参照官网/deploy/ext-4.1.0-gpl/examples/,可以先了解一下它的运行机制,项目的所有视图切换都在menu.json文件里。

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。

之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。

以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。

这次,先说说三大框架整合过程。

个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。

不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。

实践出真知。

(可通过图片水印查看博客地址)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。

它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

然而,Spring的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。

SSM框架——详细整合教程

SSM框架——详细整合教程

SSM框架——详细整合教程SSM(Spring + SpringMVC + MyBatis)是Java Web开发中常用的框架组合,通过整合这三个框架,可以使得开发更加高效、灵活、易于维护。

下面将详细介绍SSM框架的整合步骤。

1.准备工作在开始整合之前,首先需要准备好相关的环境和工具。

确保已经安装了JDK、Tomcat和Maven等工具,并且熟悉基本的Java开发和Web开发知识。

2.创建Maven项目使用Maven创建一个空白的项目作为基础项目。

在项目的pom.xml文件中添加Spring、SpringMVC和MyBatis等相关的依赖。

3.配置Spring在Spring的配置文件中,通过注解或XML的方式进行相关配置。

配置文件主要包含以下内容:-配置数据源,用于连接数据库。

-配置事务管理器,用于管理数据库事务。

- 配置Spring的扫描包,将相关的类自动注入到Spring容器中。

- 配置Spring的AOP(面向切面编程)功能,用于处理事务、日志等公共逻辑。

4.配置SpringMVC在SpringMVC的配置文件中,主要进行以下配置:-配置视图解析器,用于解析并返回视图。

-配置静态资源的处理器,用于处理静态资源文件(如CSS、JS等)。

-配置控制器映射,将请求与相应的控制器方法进行映射。

5.配置MyBatis在MyBatis的配置文件中,主要进行以下配置:- 配置数据源,与Spring的数据源配置保持一致。

- 配置MyBatis的映射文件,将Java对象与数据库表进行映射。

- 配置MyBatis的扫描包,将相关的Mapper接口自动注入到Spring容器中。

6.编写实体类和持久层代码在Java代码中,编写实体类和持久层(DAO)的代码。

实体类用于表示数据库的表结构,持久层代码用于进行数据库的操作。

7.编写服务层和控制器代码在Java代码中,编写服务层(Service)和控制器层(Controller)的代码。

SpringSpringMVCMyBatis整合

SpringSpringMVCMyBatis整合

SpringSpringMVCMyBatis整合今天主要想总结一下SSM的整合,之前已经将MyBatis和spring整合起来了,那么这次主要介绍怎样加入SpringMVC这个框架,在整合之前先简单介绍一下SpringMVC:SpringMVC是一种基于Java的,实现了”WEB MVC”设计模式,基于请求驱动类型的轻量级WEB框架,是Spring框架的重要组成部分,该框架使用了MVC架构模式的思想,将WEB层进行职责功能的解耦,基于请求驱动类型指的就是使用“请求-响应”模型,该框架的目的就是帮助我们简化web系统的开发。

SpringMVC中最重要的一个就是前端控制器:FontController:DispatcherServlet,MVC架构模式中要求一定要存在前端控制器,而且一定是由Servlet实现的,而Struts2严格来说称之为MVC的变种架构。

Servlet:Servlet规范对路径匹配规则是有要求的:1.如果一个路径是以/开头,以/*结尾,称之为路径前缀匹配2.如果一个路径是以*.开头,那么这个路径称之为扩展匹配3.其它所有的路径都是精确匹配SpringMVC架构模式:天生和Spring框架集成,能简单的进行Web层的单元测试。

搭建SpringMVC的开发环境:1.首先自然是要引入相关的Jar包,然后在web.xml中配置前端控制器:servlet当然由于我们现在创建的是WEB项目,记得在web.xml中配置一个全局的参数,在Tomcat 启动时就会去读取该文件:applicationContext.xml以下就是web.xml文件的具体配置内容:<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"><display-name>SpringMVCTest</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><!-- 解决put delete得不到数据的问题--><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter><filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><servlet-name>springmvc</servlet-name></filter-mapping><!-- session超时定义,单位为分钟--><session-config><session-timeout>30</session-timeout></session-config><error-page><error-code>403</error-code><location>/WEB-INF/views/errors/403.jsp</location></error-page><error-page><error-code>404</error-code><location>/WEB-INF/views/errors/404.jsp</location></error-page><error-page><error-code>405</error-code><location>/WEB-INF/views/errors/405.jsp</location></error-page><error-page><error-code>500</error-code><location>/WEB-INF/views/errors/500.jsp</location></error-page></web-app>2.增加配置文件,默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件,上面这样写就代表当前配置文件的名称为springmvc-servlet.xml,也就是配置文件的名称必须和Servlet的名字一样:“springmvc-servlet.xml”该配置文件中主要配置一些处理器映射器,处理适配器,视图解析器以及开启注解和扫描SpringMVC注解的包路径,以下就是具体配置内容:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/mvc/schema/mvc/spring-mvc-3.2.xsd/schema/beans/schema/beans/spring-beans-3.2.xsd/schema/context/schema/context/spring-context-3.2.xsd/schema/aop/schema/aop/spring-aop-3.2.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd"> <!-- 开启注解--><context:annotation-config /><!-- @Controller注解的使用前提配置--><mvc:annotation-driven /><!-- 扫描的包路径--><context:component-scan base-package="com.ecjtu.ssm"><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Service" /></context:component-scan><mvc:interceptors><bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" /><bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"p:paramName="lang" /></mvc:interceptors><beanclass="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"> </bean><!-- request --><beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean> <!-- 将静态文件指定到某个特殊的文件夹中统一处理--><mvc:resources location="/resources/" mapping="/resources/**" /><!-- 配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理--><mvc:resources mapping="/images/**" location="/images/" /><mvc:resources mapping="/css/**" location="/css/" /><mvc:resources mapping="/others/**" location="/others/" /><mvc:resources mapping="/js/**" location="/js/" /><mvc:resources mapping="/html/**" location="/html/" /><!-- 文件上传--><bean id="multipartResolver"class="monsMultipartResolver"><property name="maxUploadSize" value="10000000" /><!-- 10M --></bean><!--注解映射器--><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappin g"/><!-- 添加对图片、字节、字符串、XML及json数据格式的支持,注意添加json支持的jar包--><bean id="messageAdapter"class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter "><property name="messageConverters"><list><beanclass="org.springframework.http.converter.StringHttpMessageConverter" /><beanclass="org.springframework.http.converter.FormHttpMessageConverter" /><beanclass="org.springframework.http.converter.ByteArrayHttpMessageConverter" /><beanclass="org.springframework.http.converter.xml.SourceHttpMessageConverter" /><beanclass="org.springframework.http.converter.BufferedImageHttpMessageConverter" /><beanclass="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> </list></property></bean><!--启动Spring MVC的注解功能,设置编码方式,防止乱码--><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter "><property name="messageConverters"><list><beanclass="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean></list></property></bean><!-- 定义JSP文件的位置--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean></beans>这里我也一并将applicationContext.xml文件的内容都贴出来吧,里面都有详细的注释<?xml version="1.0" encoding="UTF-8"?>default-autowire="no" default-lazy-init="false"><!-- 配置Spring组件扫描的包路径--><context:component-scan base-package="com.ecjtu.ssm.*"><!-- 不包括@Controller注解--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /><context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" /></context:component-scan><!-- 开启注解--><context:annotation-config /><!-- 读取外部的配置文件,这个配置文件主要配置了数据库的连接信息--><bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>classpath:db-config.properties</value></property></bean><!--本示例采用DBCP连接池,应预先添加DBCP包的依赖。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档