欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaWeb开发之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架

程序员文章站 2024-03-11 11:42:07
简单介绍一下,本框架的基本功能点: spring:整个框架的主体部分,这个自不用说。 springmvc:mvc部分我还是比较喜欢spring的。...

简单介绍一下,本框架的基本功能点:

  1. spring:整个框架的主体部分,这个自不用说。
  2. springmvc:mvc部分我还是比较喜欢spring的。
  3. mybatis:选型的时候选择这个orm主要也是考虑其灵活性的问题,毕竟我也不知道,今后会遇到怎样的需求,用hibernate一来是不太会用,二来,我还是比较喜欢直接写sql来的简单一点。
  4. springsecurity:这个主要是安全框架,负责用户登录验证及整站权限分配的相关事项(权限分配真的很有用,这个我就不多说了)。
  5. ehcache:一个非常流行又非常简单好用的缓存框架,并且目前已经支持分布式,如果觉得不好用,自己换成redis也都ok。
  6. jcaptcha:一个简单的验证码生成框架(或者说工具)。
  7. log4j:现在没人不知道这个日志框架吧...

  按照这样的选型,基本可以完成大部分网站的基础框架,如:

  1. 用户登录管理,
  2. 整站权限分配,
  3. 数据缓存,
  4. 登录验证码,
  5. 数据库操作,
  6. 统一异常处理,
  7. 日志输出。

  网上找了很多文章,大部分都是只有部分整合的,比如ssh整合,ssm整合,springmvc+springsecurity,等等,东一块,西一块,非常分散,而且每个人的配置方式还不一样,不统一,有的人喜欢注解配置,有的人喜欢xml配置,有的文章甚至直接就是有东没西,神龙见首不见尾。看的我是很郁闷,很蛋疼,因为当我好不容易搭好一个ssm框架,我发现,我要管理用户登录及权限分配的时候,咦,我还得去配置security,然后又要找很多文章来补充知识,配置security的时候,又要找验证码的框架,都搞好了以后,发现诶,缓存这个东西不都是任何一个网站必备的吗?所以就有了现在这篇文章,花了好大得劲,终于把所有都整合起来了。

只有自己亲手走过一遍,才真正学得会知识。作为一个程序员,我相信这样才是对我们是最好的一个方式。所以不要索要源码,不会给的。 先给出整个项目的

pom.xml

<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelversion>4.0.0</modelversion>
  <groupid>com.magic.rent</groupid>
  <artifactid>ssm</artifactid>
  <packaging>war</packaging>
  <version>1.0-snapshot</version>
  <name>ssm maven webapp</name>
  <url>http://maven.apache.org</url>
  <repositories>
    <repository>
      <id>atlassian</id>
      <name>atlassian</name>
      <url>http://maven.jahia.org/maven2/</url>
    </repository>
  </repositories>
  <build>
    <finalname>ssm</finalname>
    <plugins>
      <!--mybatis 逆向工程插件-->
      <plugin>
        <groupid>org.mybatis.generator</groupid>
        <artifactid>mybatis-generator-maven-plugin</artifactid>
        <version>1.3.2</version>
        <configuration>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <properties>
    <security.version>4.1.3.release</security.version>
    <spring.version>4.3.3.release</spring.version>
  </properties>
  <dependencies>
    <!-- springframework 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>
    <dependency>
      <groupid>org.springframework</groupid>
      <artifactid>spring-expression</artifactid>
      <version>${spring.version}</version>
    </dependency>
    <!-- springframework end -->
    <!--springsecurity start-->
    <dependency>
      <groupid>org.springframework.security</groupid>
      <artifactid>spring-security-core</artifactid>
      <version>${security.version}</version>
    </dependency>
    <dependency>
      <groupid>org.springframework.security</groupid>
      <artifactid>spring-security-web</artifactid>
      <version>${security.version}</version>
    </dependency>
    <dependency>
      <groupid>org.springframework.security</groupid>
      <artifactid>spring-security-config</artifactid>
      <version>${security.version}</version>
    </dependency>
    <dependency>
      <groupid>org.springframework.security</groupid>
      <artifactid>spring-security-taglibs</artifactid>
      <version>${security.version}</version>
    </dependency>
    <dependency>
      <groupid>org.springframework.security</groupid>
      <artifactid>spring-security-crypto</artifactid>
      <version>${security.version}</version>
    </dependency>
    <!--springsecurity end-->
    <!--aspectj start-->
    <dependency>
      <groupid>org.aspectj</groupid>
      <artifactid>aspectjweaver</artifactid>
      <version>1.8.6</version>
    </dependency>
    <dependency>
      <groupid>org.aspectj</groupid>
      <artifactid>aspectjrt</artifactid>
      <version>1.8.6</version>
    </dependency>
    <!--aspectj end-->
    <!--c3p0-->
    <dependency>
      <groupid>com.mchange</groupid>
      <artifactid>c3p0</artifactid>
      <version>0.9.5.1</version>
    </dependency>
    <!--servlet/jsp api start-->
    <dependency>
      <groupid>javax.servlet</groupid>
      <artifactid>servlet-api</artifactid>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupid>javax.servlet.jsp</groupid>
      <artifactid>jsp-api</artifactid>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
    <!--servlet/jsp api end-->
    <!--junit4-->
    <dependency>
      <groupid>junit</groupid>
      <artifactid>junit</artifactid>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--mybatis-->
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis</artifactid>
      <version>3.3.0</version>
    </dependency>
    <!--mybatis spring整合-->
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis-spring</artifactid>
      <version>1.2.3</version>
    </dependency>
    <!--mysql driver-->
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
      <version>5.1.6</version>
    </dependency>
    <dependency>
      <groupid>jstl</groupid>
      <artifactid>jstl</artifactid>
      <version>1.2</version>
    </dependency>
    <!--jcaptcha验证码-->
    <dependency>
      <groupid>com.octo.captcha</groupid>
      <artifactid>jcaptcha</artifactid>
      <version>1.0</version>
    </dependency>
    <!--公共工具包-->
    <dependency>
      <groupid>org.apache.commons</groupid>
      <artifactid>commons-lang3</artifactid>
      <version>3.4</version>
    </dependency>
    <!--ehcache缓存框架 start-->
    <dependency>
      <groupid>net.sf.ehcache</groupid>
      <artifactid>ehcache-core</artifactid>
      <version>2.6.11</version>
    </dependency>
    <!--mybatis-ehcache整合包-->
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis-ehcache</artifactid>
      <version>1.0.0</version>
    </dependency>
    <!--ehcache-web页面及对象缓存-->
    <dependency>
      <groupid>net.sf.ehcache</groupid>
      <artifactid>ehcache-web</artifactid>
      <version>2.0.4</version>
    </dependency>
    <dependency>
      <groupid>org.slf4j</groupid>
      <artifactid>slf4j-api</artifactid>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupid>org.slf4j</groupid>
      <artifactid>slf4j-log4j12</artifactid>
      <version>1.6.2</version>
    </dependency>
    <!--ehcache缓存框架 end-->
  </dependencies>
</project>

项目结构截图

JavaWeb开发之Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架

以上所述是小编给大家介绍的javaweb开发之spring+springmvc+mybatis+springsecurity+ehcache+jcaptcha 完整web基础框架,希望对大家有所帮助