开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 2319|回复: 0

史无前例企业架构分享--SSM组合+springmvc+mybatis+shiro+restful+boo...

[复制链接]

0

精华

0

贡献

0

赞扬

帖子
39
软币
193
在线时间
5 小时
注册时间
2017-7-12
发表于 2017-7-17 14:09:49 | 显示全部楼层 |阅读模式
1、基本概念1.1、Spring
Spring 是一个开源框架, Spring 是于 2003  年兴起的一个轻量级的 Java  开发框架,由 Rod Johnson  在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转( IoC )和面向切面( AOP )的容器框架。
1.2、SpringMVC
        Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。 Spring MVC  分离了 控制器、模型 对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatis
        MyBatis  本是 apache的一个开源项目 iBatis, 2010 年这个项目由 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对象)映射成数据库中的记录。
愿意了解框架技术或者源码的朋友直接加求求(企鹅)2042849237
4、SSM整合
        下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了 2 个配置文件 ,分别是 spring-mybatis.xml ,包含 spring 和 mybatis 的配置文件,还有个是 spring-mvc 的配置文件,此外有 2 个资源文件 : jdbc.propertis 和 log4j.properties 。完整目录结构如下:

使用框架都是较新的版本 :
Spring 4.0.2 RELEASE
Spring MVC 4.0.2 RELEASE
MyBatis 3.2.6
4.1、Maven引入需要的JAR包
为了方便后面说的时候不需要引入JAR包,我这里 直接给出所有需要的JAR包,这都是基本的JAR包 ,每个包的是干什么的都有注释,就不再多说了。
pom.xml
<properties>                <!-- spring版本号 -->                <spring.version>4.0.2.RELEASE</spring.version>                <!-- mybatis版本号 -->                <mybatis.version>3.2.6</mybatis.version>                <!-- log4j日志文件管理包版本 -->                <slf4j.version>1.7.7</slf4j.version>                <log4j.version>1.2.17</log4j.version>        </properties>        <dependencies>                <dependency>                        <groupId>junit</groupId>                        <artifactId>junit</artifactId>                        <version>4.11</version>                        <!-- 表示开发的时候引入,发布的时候不会加载此包 -->                        <scope>test</scope>                </dependency>                <!-- spring核心包 -->                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-core</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-web</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-oxm</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-tx</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-jdbc</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-webmvc</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-aop</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-context-support</artifactId>                        <version>${spring.version}</version>                </dependency>                <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>spring-test</artifactId>                        <version>${spring.version}</version>                </dependency>                <!-- mybatis核心包 -->                <dependency>                        <groupId>org.mybatis</groupId>                        <artifactId>mybatis</artifactId>                        <version>${mybatis.version}</version>                </dependency>                <!-- mybatis/spring包 -->                <dependency>                        <groupId>org.mybatis</groupId>                        <artifactId>mybatis-spring</artifactId>                        <version>1.2.2</version>                </dependency>                <!-- 导入java ee jar 包 -->                <dependency>                        <groupId>javax</groupId>                        <artifactId>javaee-api</artifactId>                        <version>7.0</version>                </dependency>                <!-- 导入Mysql数据库链接jar包 -->                <dependency>                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>                        <version>5.1.30</version>                </dependency>                <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->                <dependency>                        <groupId>commons-dbcp</groupId>                        <artifactId>commons-dbcp</artifactId>                        <version>1.2.2</version>                </dependency>                <!-- JSTL标签类 -->                <dependency>                        <groupId>jstl</groupId>                        <artifactId>jstl</artifactId>                        <version>1.2</version>                </dependency>                <!-- 日志文件管理包 -->                <!-- log start -->                <dependency>                        <groupId>log4j</groupId>                        <artifactId>log4j</artifactId>                        <version>${log4j.version}</version>                </dependency>                                                <!-- 格式化对象,方便输出日志 -->                <dependency>                        <groupId>com.alibaba</groupId>                        <artifactId>fastjson</artifactId>                        <version>1.1.41</version>                </dependency>                <dependency>                        <groupId>org.slf4j</groupId>                        <artifactId>slf4j-api</artifactId>                        <version>${slf4j.version}</version>                </dependency>                <dependency>                        <groupId>org.slf4j</groupId>                        <artifactId>slf4j-log4j12</artifactId>                        <version>${slf4j.version}</version>                </dependency>                <!-- log end -->                <!-- 映入JSON -->                <dependency>                        <groupId>org.codehaus.jackson</groupId>                        <artifactId>jackson-mapper-asl</artifactId>                        <version>1.9.13</version>                </dependency>                <!-- 上传组件包 -->                <dependency>                        <groupId>commons-fileupload</groupId>                        <artifactId>commons-fileupload</artifactId>                        <version>1.3.1</version>                </dependency>                <dependency>                        <groupId>commons-io</groupId>                        <artifactId>commons-io</artifactId>                        <version>2.4</version>                </dependency>                <dependency>                        <groupId>commons-codec</groupId>                        <artifactId>commons-codec</artifactId>                        <version>1.9</version>                </dependency>                                        </dependencies> 4.2、Spring与MyBatis的整合
所有需要的 JAR 包都引入以后,首先进行 Spring 与 MyBatis 的整合,然后再进行 JUnit 测试,先看一个项目结构图:
驱动式项目构建
内置高效可靠的代码生成器
支持多种数据模型,根据数据库表生成常规重复性代码,使研发工程师更专注于业务逻辑代码的实现,大幅提升其工作效率,解放其重复性工作
OPEN CI
开源规范化项目管理解决方案,实现软件流水线式生产,保证正确性、可靠性
向导式创建、导入项目,集成版本控制(GIT/SVN)、项目管理(Trac/Redmine)、代码质量(Sonar)、持续集成(Jenkins)
私有部署,统一管理,为开发者而生
愿意了解框架技术或者源码的朋友直接加求求(企鹅)2042849237
分布式
分布式服务:Dubbo+Zookeeper+Proxy+Restful
分布式消息中间件:KafKa+Flume+Zookeeper
分布式缓存:Redis    分布式文件:FastDFS
负载均衡:Keepalived+Nginx+Proxy(三重负载)
欢迎大家一起学习研究相关技术愿意了解框架技术或者源码的朋友直接加求求(企鹅):2042849237

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-11-22 00:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表