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

发布时间 - 2026-01-10 22:02:13    点击率:

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

  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基础框架,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mybatis  # ehcache  # spring  # jcaptcha  # mybatis-plus报错Not Found TableInfoCache异常  # mybatis整合ehcache做三级缓存的实现方法  # 在Mybatis中使用自定义缓存ehcache的方法  # mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache)  # Mybatis添加Ehcache支持的方法  # MyBatis验证多级缓存及 Cache Aside 模式的应用小结  # 验证码  # 都是  # 用户登录  # 有的人  # 好用  # 比较喜欢  # 小编  # 我还是  # 我是  # 我就  # 我要  # 神龙见首不见尾  # 好了  # 是有  # 才是  # 在此  # 不太  # 说了  # 每个人  # 还不 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 什么是JavaScript解构赋值_解构赋值有哪些实用技巧  想要更高端的建设网站,这些原则一定要坚持!  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  python中快速进行多个字符替换的方法小结  JS碰撞运动实现方法详解  JavaScript如何实现继承_有哪些常用方法  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  javascript读取文本节点方法小结  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  百度浏览器如何管理插件 百度浏览器插件管理方法  高防服务器租用如何选择配置与防御等级?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何挑选高效建站主机与优质域名?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何获取PHP WAP自助建站系统源码?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何基于PHP生成高效IDC网络公司建站源码?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  网站建设保证美观性,需要考虑的几点问题!  如何在阿里云虚拟服务器快速搭建网站?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何构建满足综合性能需求的优质建站方案?  高端建站如何打造兼具美学与转化的品牌官网?  北京网站制作公司哪家好一点,北京租房网站有哪些?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Bootstrap CSS布局之列表  PHP 500报错的快速解决方法  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  再谈Python中的字符串与字符编码(推荐)  如何生成腾讯云建站专用兑换码?  如何正确选择百度移动适配建站域名?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  JavaScript Ajax实现异步通信  如何在云主机上快速搭建多站点网站?  C#如何调用原生C++ COM对象详解  Laravel如何处理表单验证?(Requests代码示例)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  java ZXing生成二维码及条码实例分享  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  如何快速生成高效建站系统源代码?  如何快速生成可下载的建站源码工具?