详见整合教程,服务端常规知识详整

作品版权由小编李晓晖和今日头条共有,若转发请于明显处评释出处:http://www.cnblogs.com/naaoveGIS/

摘要: 基本概念 1.1、Spring spring是二个开源框架,Spring是于二〇〇四年兴起的三个轻量级的Java开采框架,由Rod Johnson 在其小说Expert
One-On-One J2EE Development and
Design中论述的片段眼光和原型衍生而来。它是为领悟决公司应用开荒的纷纷而创建的。Spring使用基本的JavaBean来完毕从前只恐怕由EJB达成的专业。然则,Spring的用场不仅只限于服务器端的费用。从简单性、可测量检验性和松耦合的角度来说,任何Java应用都能够从Spring中收益。
简单来说,Spring是四个轻量级的调控反转(IoC卡塔 尔(英语:State of Qatar)和面向切面(A

1.前言

信用社老品种的后台,均是依附spring框架搭建,个中还用到了log4j.jar等开源架包。在新类型中,则是spring和hibernate框架均有应用,利用了hibernate框架,来落到实处持久化,简化sql操作等。Hibernate配置文件能够有三种格式,生龙活虎种是
hibernate.properties,另风流罗曼蒂克种是
hibernate.cfg.xml。后面一个微微低价一些,当扩张hbm映射文件的时候,能够平素在
hibernate.cfg.xml 里面扩充,不必像 hibernate.properties
必得在初叶化代码中投入。大家新类型中采用的是hibernate.cfg.xml格式。但是在本文中不将细述,后续有机会再补上。

商家项目中,中间件主要有tomcat,webshpere,WebLogic。以下,将对品种中spring基本配置,log4j的布署,还会有中间件的相关参数配置做多少个从头的介绍。

1、基本概念

2.spring配置——以老GIS项目为例子

GISV13中的配置涉及到了SpringMVC,IOC,AOP,
Quartz方面包车型大巴配置。配置的完毕是通过注记配置和XML配置来合营完结。这里,笔者将如约Spring的安顿流程,将其他多少个地点的布局融合此中,来进展宏观解析。

1.1、Spring

2.1SpringMVC的配置

spring是二个开源框架,Spring是于2002 年兴起的贰个轻量级的Java支出框架,由Rod Johnson 在其小说Expert One-On-One J2EE Development and Design中论述的生龙活虎对眼光和原型衍生而来。它是为了消除集团应用开辟的繁杂而创立的。Spring使用基本的JavaBean来变成早先只或然由EJB完结的业务。可是,Spring的用途不独有限于服务器端的成本。从简单性、可测试性和松耦合的角度来说,任何Java利用都可以从Spring中收益。 由此可以见到,Spring是四个轻量级的决定反转(IoC卡塔尔和面向切面(AOP卡塔 尔(英语:State of Qatar)的容器框架。

2.1.1.web.xml的配置

  
Web程序中,当中间件运转时,中间件会率先读取web.xml中的配置。在web.xml中得以安顿监听器,过滤器,servlet映射等等。在Spring框架中,大家第风姿罗曼蒂克需安插容器开首化时读取的spring容器配置文件的门路以至springMVC中的分发器DispatcherServlet。

在GISV13的web.xml中,大家定义了之类内容:

    图片 1     

图片 2              

InitGISConfigServlet定义了容器运行时,首先要运转那么些办法。然后servletname为MVC的那生机勃勃部分就是概念了springMVC的分发器以至此servlet所对应的加载配置文件的门道。在web.xml中得以安顿多个那样的servlet。截图中这段xml的配备是指,当后缀名称为.htm时,则感动springMVC的分发器。关于此servlet的安排在/WEB-INF/classes/applicationContext-servlet.xml地址下。Servlet的铺排文件有其暗许的地方,此处为呈现表示。

1.2、SpringMVC

2.1.2.servlet的陈设文件

 图片 3

率先,在配置文件中供给定义springMVC的引用空间以至配备格式两项。

Spring MVC归于SpringFrameWork的继承成品,已经融入在Spring Web Flow里面。Spring MVC 抽离了控制器、模型对象、分派器以致处理程序对象的剧中人物,这种分离让它们更易于开展定制。

2.1.2.1配置Controller

为了帮助评释格式,增添了如下配置:

 图片 4

此布局会在陈设文件被容器加载时,扫面增加了讲解的代码,达成MVC的有关配置。在GISV13中,运用了@Controller,
@瑟维斯来定义调整层以致DAO中的实现层,通过@RequestMapping来扩充U福睿斯L与Controller之间的关系。

1.3、MyBatis

2.1.2.2配置Model和View

在SpringMVC中经过Controller再次来到的数量会被包裹在ModelAndView那几个类里。此类中隐含有重返的现实数目以至再次回到的数目指向的U途观L。

在GISV第13中学与此相关的布署为:

 图片 5

此安顿中为ModelAndView中的url暗中认可增多了多少个前缀,以至为url所针对的文本名背后加多了文件格式,就要重临的url转变来/home/url/file.jsp的体裁。

並且此安顿中也定义了视图和视图解译器:视图为org.springframework.web.servlet.view.JstlView,视图解译器为:org.springframework.web.servlet.view.InternalResourceViewResolver。

其实InternalResourceViewResolver默许的视图正是JstlView。此处不安排也能够。

视图解译器有那个种,遵照差别的视图以致用场而定。SpringMVC中支持对PDF,XML还应该有上传下载文件等视图的支撑。

MyBatis 本是apache的一个开源项目iBatis, 二〇一〇年那个项目由apache software foundation 迁移到了google code,并且改名称为MyBatis 。MyBatis是多少个基于Java的持久层框架。iBATIS提供的持久层框架包蕴SQL Maps和Data Access Objects(DAO卡塔尔国MyBatis 消释了差不离全部的JDBC代码和参数的手工业安装以致结果集的追寻。MyBatis 使用简便的 XML或阐明用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象卡塔尔映射成数据库中的记录。

2.2.IOC的配置

在GISV13中,IOC相关的安排也是透过注明和XML合作完结的。与容器相关的配置地址在web.xml中早就配成,在容器运营时便会举行加装。这里咱们本着利用了IOC的ORM来扩充批注。

2、开荒条件搭建

2.2.1.定义JDBC.properties文件

此处首要有两项:

 图片 6

即数据库驱动以致数据库地址。

本领选型(只列了一片段技巧卡塔尔国

2.2.2布置数据库连接

对此分裂的数据库,spring配置数据库时会引用差异的类,GISV13支撑的数据库是Oracle,所以这边引用的类是BasicDataSource。具体陈设如下:

 图片 7

此布置为容器运转时,实例化BasicDataSource类,property中的每叁个对象均为对象开头化时的属性配置,这个属性包括了驱动类型,连接地址,最安卡拉接数等。在事先计划的jdbc.properties中的类容,可在此边直接运用。

1、后端

2.2.3.选用数据库

在系统代码中,通过@Autowired,将实例化后的目的,在容器发轫化时注入到评释所对应的靶子中。

 图片 8

便得以将spring中含有了数据库配置而机关实例化好后的jdbc对象注入到声明对象中。大家平常选拔的是JdbcTemplate类,此类将数据库操作进行了浅包装,至此增加和删除查改甚至存款和储蓄进程的调用等,防止了代码中一再用到容错机制等重复代码。

劳动框架:Dubbo、zookeeper、Rest服务

2.3.AOP的配置

AOP是Spring的一大亮点,其关联到的概念超级多,举个例子切入点,巩固,横断面等等。在利用表明等职能中常需选拔该配置。在GISV13里也运用了此功效,首要是为了数据库事务管理而利用的。在Spring中,AOP的得以达成能够透过普通XML配置,AspectJ的布置还应该有评释配置等来完结。结合种类,小编将AspectJ的布署来差不离批注下。

缓存:Redis、ehcache

2.3.1.布置事物管理类

 图片 9

该类中要害定义了政工管理所关联的数据库。DataSource的配备在上生龙活虎章已描述。

音讯中间件:ActiveMQ

2.3.2配置巩固类容

 图片 10

该类中定义了增加的类容,即织入到对象对象(Target卡塔 尔(英语:State of Qatar)代码中的内容。Attributes里定义了该升高所对应的操作。比方当方法名以find初阶是,事务管理的品类为只读。事务管理的本性中还是能够安装传播天性,以至事物隔绝性等。若是不设置,此处的转播天性为::PROPGATION_REQUIRED。那个布局项的意趣是说当自个儿调用service层的措施的时候打开一个政工(具体调用那意气风发层的艺术初步创办职业,要看aop的布署),那么在调用那么些service层里面的别的的情势的时候,假诺当前艺术产生了业务就用当下格局发生的政工,不然就创建贰个新的职业。那一个职业使由Spring来提携大家做到的。

负载均衡:Nginx

2.3.3.定义织入点和剖面

 图片 11

先是定义织入点,该配置中的意思是当在cn.com.*包下以直接到dao包中以Manager甘休的类中的全部办法。

下一场定义了断面,该切面首先涉及了织入点,其次关联了增加类。即,在满足织入条件下的格局中加上加强的类容,该提升的类容在4.2中已经描述。

布满式文件:法斯特DFS

2.4.SpringQuartz的配置

Spring3.0以后自带的task,能够将它充当叁个轻量级的Quartz,并且动用起来比Quartz轻松许多,能够旁逸斜出职务的准期触发。

数据库连接池:Alibaba
Druid 1.0

2.4.1作业类配置

 图片 12

概念三个作业类。Value中为急需接触的类的援用地址。

主干框架:Spring framework

2.4.2 触发配置

接触条件分为三种,轻松标准和错综相连的尺度。

安全框架:Apache Shiro 1.2

2.4.2.1 简单触发配置

 图片 13

能够配备触发延迟时间和接触间距时间。此中ref为索要接触的类的安排(bean)名。

视图框架:Spring MVC 4.0

2.4.2.2 复杂触发配置

 图片 14

复杂配置中得以布署具体触发的年华等。

服务端验证:hibernateValidator
5.1

3.Log4j的配置

普及的支撑日志的开源项目相当多,重要有:Log4j,Jul,Jcl,Slf4j,Logback等。可是,log4j以其持久的历史,遍布的利用,补助多样语言及阳台,强盛的功用,吞并了主导的地位。

布局框架:SiteMesh 2.4

3.1信任的包

诚如要求log4j-1.2.13.jar和commons-logging-1.1.1.jar多少个架包。可是,log4j-1.2.13.jar是必需的,commons-logging-1.1.1.jar并非必得的。

康芒斯-loggin的目标是为“全数的Java日志完毕”提供八个联合的接口,它本身的日志功能经常弱(独有三个轻松易行的SimpleLog卡塔 尔(阿拉伯语:قطر‎,
所以平常不会独自使用它。不过,大概具有用到Log4j的门类日常也还要会用到commons-loggin。那样做重假设为着幸免自个儿项目与Log4j绑定的太紧凑。其余,
“同期接纳commons-
logging和Log4j”,能够提供一个统意气风发的日记接口,轻巧了操作,同偶尔间幸免项目与有些日志达成系统紧凑耦合,如此能够活动选拔适当的日志完毕系统。

办事流引擎:Activiti 5.15

3.2 web.xml中配置

在web.xml中须求配置log4j的配置文件地点,以致监听运转项。

 图片 15

 图片 16

职务调解:quartz 1.8.5

3.3 log4j.properties配置

Log4j中得以安顿日志的出口等第,输出格式,日志路线日志名,时间格式等。

图片 17

悠久层框架:MyBatis 3.2

3.3.1日志等级

日志品级:

E巴博斯 SL级ROSportage:就算发生错误事件,但如故不影响系统的接轨运转。

WAKoleosN:会现身神秘错误的情状。

INFO:新闻在粗粒度等级上卓越重申应用程序的运维进程。

DEBUG:细粒度新闻事件对调解应用程序是这一个有助于的。

日志处理:SLF4J 1.7、Log4j

3.3.2 appender配置

 图片 18

 其中:
org.apache.log4j.ConsoleAppender(控制台)。
org.apache.log4j.FileAppender(文件)。
org.apache.log4j.DailyRollingFileAppender(每一日发生多个日记文件卡塔尔国。
org.apache.log4j.RollingFileAppender(文件大小达到钦命尺寸的时候发出二个新的文书卡塔 尔(阿拉伯语:قطر‎。
org.apache.log4j.WriterAppender(将日志新闻以流格式发送到放肆钦赐的地点卡塔 尔(英语:State of Qatar)。

工具类:Apache Commons、Jackson 2.2、Xstream 1.4、Dozer 5.3、POI

3.3.3 Threshold配置

Layout:
  org.apache.log4j.HTMLLayout(以HTML表格方式布局卡塔尔。
  org.apache.log4j.PatternLayout(能够灵活地钦定布局形式卡塔 尔(英语:State of Qatar)。
  org.apache.log4j.SimpleLayout(包涵日志音信的等第和音信字符串卡塔 尔(英语:State of Qatar)。
  org.apache.log4j.TTCCLayout(包括日志发生的年月、线程、连串等等音讯卡塔 尔(英语:State of Qatar)。

2、前端

3.3.4 打印格式

Log4J选取的是相似C语言中的printf函数的打字与印刷格式格式化日志消息的

%m 输出代码中钦点的音讯

%p 输出优先级,即DEBUG,INFO,WA奥迪Q7N,EEvoqueRORubicon,FATAL

%r 输出自应用运营到输出该log音讯花费的皮秒数

%c 输出所属的类目,平日正是所在类的姓名

%t 输出发生该日志事件的线程名

%n
输出七个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”,也正是少年老成跳新闻攻克朝气蓬勃行

%d 输出日志时间点的日子或时间,紧跟后生可畏对花括号进行自定义格式

 %c 输出所属的类目,平常正是所在类的姓名

 %l 精确到行

%x 输出对齐

js框架:jQuery1.9。

3.3.5出口的路径地址

在web.xml中,定义了项目名:

 图片 19

在log4j.properties中定义了输入日志路线:

 图片 20

CSS框架: Bootstrap 4 metronic

3.4代码中央银行使

第风流罗曼蒂克引述:

 图片 21

接下来实例化:

图片 22

最终动用:

图片 23

客商端验证:jqueryValidation
Plugin。

4.中间件配置——以tomcat为例

汤姆cat中大家日常进行的布局有:端口,回话连接数,线程数,编码格式,文件减弱,内部存款和储蓄器大小等。

富文本:CKEcitor

4.1 server.xml的配置

 图片 24

文件管理:CKFinder

4.2 内部存储器设置

在catalina.bat文件中能够追加tomcat的内部存款和储蓄器数,制止space heap难点。

 图片 25

                                                            
——迎接转发,但保留版权,请于显然处标注出处:http://www.cnblogs.com/naaoveGIS/

 

动态页签:Jerichotab

数码表格:jqGrid

对话框:jQuery jBox

树结构控件:jQuery zTree

别的零部件:Bootstrap 4 metronic

3、支持

服务器中间件:汤姆cat 6、7、Jboss 7、WebLogic 10、WebSphere 8

数据库支持:如今仅提供MySQL数据库的支撑,但不防止数据库,下个版本晋级大多据源切换和数据库读写抽离:
如:Oracle、SqlServer、H2等

援救支付情况:Eclipse、MyEclipse、Ras、Idea等

经文介绍:

源码结构

图片 26

应接大家一块儿读书商量有关技艺愿意精晓框架本领可能源码的相爱的人一贯加求求(企鹅卡塔尔国:2042849237

越来越多详细源码参照他事他说加以考察来源:http://minglisoft.cn/technology

3、Maven Web项目成立

4、SSM整合

上边首要介绍三大框架的三结合,至于情形的搭建以至项指标创导,参看上面的博文。本次结合小编分了2个布局文件,分别是spring-mybatis.xml,包括spring和mybatis的布置文件,还恐怕有个是spring-mvc的陈设文件,其他有2个财富文件:jdbc.propertis和log4j.properties。完整目录结构如下(最后附上源码下载地址,不提议直接动用源码,因为此教程已经有了全体代码卡塔尔:

图片 27

动用框架都以较新的本子:

Spring 4.0.2 RELEASE

Spring MVC 4.0.2 RELEASE

MyBatis 3.2.6

4.1、Maven引进须要的JA哈弗包

为了方便前面说的时候无需引进JA普拉多包,笔者这里一向交给全数须求的JAEvoque包,那都以宗旨的JA奔驰M级包,每个包的是干吗的都有注释,就不再多说了。

pom.xml

4.0.2.RELEASE

3.2.6

1.7.7

1.2.17

junit

junit

4.11

test

org.springframework

spring-core

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-oxm

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-aop

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-test

${spring.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.2.2

javax

javaee-api

7.0

mysql

mysql-connector-java

5.1.30

commons-dbcp

commons-dbcp

1.2.2

jstl

jstl

1.2

log4j

log4j

${log4j.version}

com.alibaba

fastjson

1.1.41

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.codehaus.jackson

jackson-mapper-asl

1.9.13

commons-fileupload

commons-fileupload

1.3.1

commons-io

commons-io

2.4

commons-codec

commons-codec

1.9

4.2、Spring与MyBatis的整合

怀有要求的JAEnclave包都引进以往,首先举办Spring与MyBatis的三结合,然后再扩充JUnit测试,先看三个品类结构图:

图片 28

4.2.1、创设JDBC属性文件

jdbc.properties(文件编码修改为utf-8卡塔尔国

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://10.221.10.111:8080/db_zsl

username=demao

password=demao

#概念开始连接数

initialSize=0

#概念最达累斯萨拉姆接数

maxActive=20

#概念最大空闲

maxIdle=20

#概念最小空闲

minIdle=1

#概念最长等待时间

maxWait=60000

4.2.2、创建spring-mybatis.xml配置文件

以此文件就是用来变成spring和mybatis的咬合的。这里面也没有多少行布置,首要的正是自动扫描,自动注入,配置数据库。注释也很详细,我们看看就精晓了。

spring-mybatis.xml

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">

class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>

destroy-method=”close”

class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>

4.2.3、Log4j的配置

为了方便调节和测量试验,平常都会使用日志来输出消息,Log4j是Apache的二个怒放源代码项目,通过利用Log4j,大家能够操纵日志音信输送的目标地是控制台、文件、GUI零器件,以致是套接口服务器、NT的事件记录器、UNIXSyslog守护进度等;大家也得以操纵每一条日志的输出格式;通过定义每一条日志音讯的品级,大家能够更进一层紧凑地调全日志的变迁进度。

Log4j的配备很简短,况且也是通用的,上边给出三个主干的安插,换来其余门类中也无需做多大的调动,假诺想做调治仍然想询问Log4j的各个配置,参看小编转载的大器晚成篇博文,很详细:

下边给出配置文件目录:

图片 29

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

4.2.4、JUnit测试

经过上述步骤(到4.2.2,log4j不配也没影响卡塔尔国,大家早已完成了Spring和mybatis的重新整合,那样大家就能够编写后生可畏段测验代码来试试看是还是不是中标了。

4.2.4.1、创制测验用表

既然大家须要测验,那么我们就需求创建在数据库中国建筑工程总公司立一个测量试验表,那几个表建的极粗略,SQL语句为:

DROP TABLE IF EXISTS `user_t`;

CREATE TABLE `user_t` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`user_name` varchar(40) NOT NULL,

`password` varchar(255) NOT NULL,

`age` int(4) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

/*Data for the table `user_t` */

insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,’测试’,’sfasgfaf’,24);

4.2.4.2、利用MyBatis
Generator自动创设代码

那几个可依据表自动成立实体类、MyBatis映射文件以致DAO接口,当然,小编习贯将转移的接口名改为IUserDao,并不是一直用它生成的UserMapper。假如不想麻烦就可以不改。完毕后将文件复制到工程中。如图:

图片 30

4.2.4.3、建构Service接口和落到实处类

目录结构:

下边给出具体的故事情节:

IUserService.jave

package com.cn.hnust.service;

import com.cn.hnust.pojo.User;

public interface IUserService {

public User getUserById(int userId);

}

UserServiceImpl.java

package com.cn.hnust.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.cn.hnust.dao.IUserDao;

import com.cn.hnust.pojo.User;

import com.cn.hnust.service.IUserService;

@Service(“userService”)

public class UserServiceImpl implements IUserService {

@Resource

private IUserDao userDao;

@Override

public User getUserById(int userId) {

// TODO Auto-generated method stub

return this.userDao.selectByPrimaryKey(userId);

}

}

4.2.4.4、构建测量检验类

测验类在src/test/java中确立,上边测量检验类中注释掉的片段是不利用Spring时,日常情状下的生机勃勃种测量检验方法;假使运用了Spring那么即可动用注脚的法门来引进配置文件和类,然后再将service接口对象注入,就能够举办测验了。

假如测验成功,表示Spring和Mybatis已经组成成功了。输出新闻使用的是Log4j打字与印刷到调节台。

package org.zsl.testmybatis;

import javax.annotation.Resource;

import org.apache.log4j.Logger;

import org.junit.Before;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.alibaba.fastjson.JSON;

import com.cn.hnust.pojo.User;

import com.cn.hnust.service.IUserService;

@RunWith(SpringJUnit4ClassRunner.class)     //表示继续了SpringJUnit4ClassRunner类

@ContextConfiguration(locations = {“classpath:spring-mybatis.xml”})

public class TestMyBatis {

private static Logger logger = Logger.getLogger(TestMyBatis.class);

//  private ApplicationContext ac = null;

@Resource

private IUserService userService = null;

//  @Before

//  public void before() {

//      ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);

//      userService = (IUserService) ac.getBean(“userService”);

//  }

@Test

public void test1() {

User user = userService.getUserById(1);

// System.out.println(user.getUserName());

// logger.info(“值:”+user.getUserName());

logger.info(JSON.toJSONString(user));

}

}

测量检验结果:

图片 31

到现在,完结Spring和mybatis这两大框架的结合,下面在三番两次进行SpringMVC的组合。

4.3、整合SpringMVC

地点已经成功了2大框架的咬合,SpringMVC的配置文件单独放,然后在web.xml中布置结合。

4.3.1、配置spring-mvc.xml

布局内部的批注也很详细,在这里就不说了,首假如机关扫描调整器,视图方式,注解的开发银行那四个。

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">

class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>

text/html;charset=UTF-8

class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>

class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>

4.3.2、配置web.xml文件

这里直面spring-mybatis.xml的引进甚至布署的spring-mvc的Servlet正是为了成功SSM整合,以前2框架整合不须求在那地进行任何配置。配置相仿有详细证明,超级少解释了。

web.xml

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

version=”3.0″>

Archetype Created Web Application

contextConfigLocation

classpath:spring-mybatis.xml

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

true

encoding

UTF-8

encodingFilter

/*

org.springframework.web.context.ContextLoaderListener

org.springframework.web.util.IntrospectorCleanupListener

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

true

SpringMVC

/

/index.jsp

4.3.3、测试

从那之后已经做到了SSM三大框架的结合了,接下去测量检验一下,如若成功了,那么恭喜您,如果失败了,继续调节和测量试验吧,作为程序猿正是不停的与BUG做见死不救争!

4.3.3.1、新建jsp页面

图片 32

showUser.jsp   此页面仅输出一下客商名,实现八个完完全全的大致流程。

<%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%>

测试

${user.userName}

4.3.3.2、建立UserController类

package com.cn.hnust.controller;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import com.cn.hnust.pojo.User;

import com.cn.hnust.service.IUserService;

@Controller

@RequestMapping(“/user”)

public class UserController {

@Resource

private IUserService userService;

@RequestMapping(“/showUser”)

public String toIndex(HttpServletRequest request,Model model){

int userId = Integer.parseInt(request.getParameter(“id”));

User user = this.userService.getUserById(userId);

model.addAttribute(“user”, user);

return “showUser”;

}

}

迎接我们齐声读书钻探相关才能愿意精通框架本事依然源码的对象一向加求求(企鹅卡塔 尔(阿拉伯语:قطر‎:2042849237

越多详细源码参照他事他说加以考查来源:http://minglisoft.cn/technology

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图