技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

Spring + Spring MVC + Mybatis 高性能web构建实例教程详解

来源:技术员联盟┆发布时间:2017-05-30 06:38┆点击:

  用最合适的技术去实现,并不断追求最佳实践。这就是架构之道。

  希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法。

  源码地址:https://github.com/Eliteams/quick4j 点击打开

  源码地址:https://github.com/Eliteams/quick4j 点击打开

  源码地址:https://github.com/Eliteams/quick4j 点击打开

  看我们的项目结构:

Spring + Spring MVC + Mybatis 高性能web构建实例教程详解 三联

  是一个典型的Maven 项目 :

  src/main/Java:存放java源文件

  src/main/resources:存放程序资源、配置文件

  src/test/java:存放测试代码文件

  src/main/webapp:web根目录

  pom.xml : maven项目配置文件,管理依赖,编译,打包

  主要的后端架构:spring + Spring MVC + Mybatis + Apache Shiro

  前端界面主要使用MetroNic 模板,

  先看我们搭建完成,跑起来的效果,这样你才有兴趣看下去:

Spring + Spring MVC + Mybatis 高性能web构建实例教程详解

Spring + Spring MVC + Mybatis 高性能web构建实例教程详解

  你可以 在github 上 checkout quick4j项目 查看 ,并跟下面步骤 来搭建:

  强烈建议你,checkout https://github.com/Eliteams/quick4j ,在本地跑起来,再试着自己搭建框架

  1、首先创建 maven 项目 ,用 idea 、eclipse 或 mvn 命令行都行

  2、配置 pom.xml ,添加框架依赖

<project xmlns="" xmlns:xsi="" xsi:schemaLocation=" http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.eliteams</groupId> <artifactId>quick4j</artifactId> <packaging>war</packaging> <version>1.0.0</version> <name>quick4j App</name> <url>https://github.com/starzou/quick4j</url> <build> <finalName>quick4j</finalName> <plugins> <!-- Mybatis generator代码生成插件 配置 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>${plugin.mybatis.generator}</version> <configuration> <configurationFile>${mybatis.generator.generatorConfig.xml}</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </plugin> <!--Maven编译插件 配置--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${plugin.maven-compiler}</version> <configuration> <source>${project.build.jdk}</source> <target>${project.build.jdk}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> </plugins> <!--配置Maven 对resource文件 过滤 --> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build> <properties> <!-- base setting --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.locales>zh_CN</project.build.locales> <project.build.jdk>1.7</project.build.jdk> <!-- plugin setting --> <mybatis.generator.generatorConfig.xml>${basedir}/src/test/resources/generatorConfig.xml</mybatis.generator.generatorConfig.xml> <mybatis.generator.generatorConfig.properties>file:///${basedir}/src/test/resources/generatorConfig.properties</mybatis.generator.generatorConfig.properties> <!-- plugin versions --> <plugin.mybatis.generator>1.3.1</plugin.mybatis.generator> <plugin.maven-compiler>3.1</plugin.maven-compiler> <!-- lib versions --> <junit.version>4.11</junit.version> <spring.version>4.0.2.RELEASE</spring.version> <mybatis.version>3.2.2</mybatis.version> <mybatis.spring.version>1.2.2</mybatis.spring.version> <mysql.connector.version>5.1.30</mysql.connector.version> <postgresql.version>9.1-901.jdbc4</postgresql.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>1.2.12</log4j.version> <httpclient.version>4.1.2</httpclient.version> <jackson.version>1.9.13</jackson.version> <c3p0.version>0.9.1.2</c3p0.version> <druid.version>1.0.5</druid.version> <tomcat.jdbc.version>7.0.53</tomcat.jdbc.version> <jstl.version>1.2</jstl.version> <google.collections.version>1.0</google.collections.version> <cglib.version>3.1</cglib.version> <shiro.version>1.2.3</shiro.version> <commons.fileupload.version>1.3.1</commons.fileupload.version> <commons.codec.version>1.9</commons.codec.version> <commons.net.version>3.3</commons.net.version> <aspectj.version>1.6.12</aspectj.version> <netty.version>4.0.18.Final</netty.version> <hibernate.validator.version>5.1.1.Final</hibernate.validator.version> </properties> <dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> </dependency> <!-- springframe start --> <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> <!-- springframe end --> <!-- mybatis start--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <!--mybatis end--> <!-- mysql-connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector.version}</version> </dependency> <!-- DruidDataSource --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <!-- jackson --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</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 --> <!-- servlet api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <!-- jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <!-- start apache --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>${commons.fileupload.version}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${commons.codec.version}</version> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>${commons.net.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <!-- end apache --> <!-- google --> <dependency> <groupId>com.google.collections</groupId> <artifactId>google-collections</artifactId> <version>${google.collections.version}</version> </dependency> <!-- cglib --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>${cglib.version}</version> </dependency> <!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-quartz</artifactId> <version>${shiro.version}</version> </dependency> <!-- aspectjweaver --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <!-- hibernate-validator --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${hibernate.validator.version}</version> </dependency> <!-- netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> <type>jar</type> <scope>test</scope> </dependency> </dependencies> </project>

3、配置web.xml

web.xml是一个项目的核心,看看它的一些配置:

配置 ContextLoaderListener 监听器

配置Spring字符编码过滤器

配置shiro 安全过滤器

配置Spring MVC 核心控制器 DispatcherServlet

配置一些页面

spring 和 apache shiro 是由一个 ContextLoaderListener 监听器 加载的配置文件,并初始化