zoukankan      html  css  js  c++  java
  • 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(前言)

      一直希望能够搭建一个完整的,基础Web框架,方便日后接一些外快的时候,能够省时省力,终于花了一周的时间,把这个东西搞定了。特此写下此博客,一来是纪念,二来是希望能够为别人提供方便。顺带说一下,恩,组合框架的各个部分用的版本有的是最新的,有的则不是,不敢保证最新版本下,按照这个整合方式,不会报错...

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


    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


     

      1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      3     <modelVersion>4.0.0</modelVersion>
      4     <groupId>com.magic.rent</groupId>
      5     <artifactId>ssm</artifactId>
      6     <packaging>war</packaging>
      7     <version>1.0-SNAPSHOT</version>
      8     <name>ssm Maven Webapp</name>
      9     <url>http://maven.apache.org</url>
     10     <repositories>
     11         <repository>
     12             <id>atlassian</id>
     13             <name>atlassian</name>
     14             <url>http://maven.jahia.org/maven2/</url>
     15         </repository>
     16     </repositories>
     17     <build>
     18         <finalName>ssm</finalName>
     19         <plugins>
     20             <!--Mybatis 逆向工程插件-->
     21             <plugin>
     22                 <groupId>org.mybatis.generator</groupId>
     23                 <artifactId>mybatis-generator-maven-plugin</artifactId>
     24                 <version>1.3.2</version>
     25                 <configuration>
     26                     <verbose>true</verbose>
     27                     <overwrite>true</overwrite>
     28                 </configuration>
     29             </plugin>
     30         </plugins>
     31     </build>
     32     <properties>
     33         <security.version>4.1.3.RELEASE</security.version>
     34         <spring.version>4.3.3.RELEASE</spring.version>
     35     </properties>
     36     <dependencies>
     37         <!-- SpringFramework Start -->
     38         <dependency>
     39             <groupId>org.springframework</groupId>
     40             <artifactId>spring-core</artifactId>
     41             <version>${spring.version}</version>
     42         </dependency>
     43 
     44         <dependency>
     45             <groupId>org.springframework</groupId>
     46             <artifactId>spring-web</artifactId>
     47             <version>${spring.version}</version>
     48         </dependency>
     49 
     50         <dependency>
     51             <groupId>org.springframework</groupId>
     52             <artifactId>spring-oxm</artifactId>
     53             <version>${spring.version}</version>
     54         </dependency>
     55 
     56         <dependency>
     57             <groupId>org.springframework</groupId>
     58             <artifactId>spring-tx</artifactId>
     59             <version>${spring.version}</version>
     60         </dependency>
     61 
     62         <dependency>
     63             <groupId>org.springframework</groupId>
     64             <artifactId>spring-jdbc</artifactId>
     65             <version>${spring.version}</version>
     66         </dependency>
     67 
     68         <dependency>
     69             <groupId>org.springframework</groupId>
     70             <artifactId>spring-webmvc</artifactId>
     71             <version>${spring.version}</version>
     72         </dependency>
     73 
     74         <dependency>
     75             <groupId>org.springframework</groupId>
     76             <artifactId>spring-aop</artifactId>
     77             <version>${spring.version}</version>
     78         </dependency>
     79 
     80         <dependency>
     81             <groupId>org.springframework</groupId>
     82             <artifactId>spring-context-support</artifactId>
     83             <version>${spring.version}</version>
     84         </dependency>
     85 
     86         <dependency>
     87             <groupId>org.springframework</groupId>
     88             <artifactId>spring-test</artifactId>
     89             <version>${spring.version}</version>
     90         </dependency>
     91 
     92         <dependency>
     93             <groupId>org.springframework</groupId>
     94             <artifactId>spring-expression</artifactId>
     95             <version>${spring.version}</version>
     96         </dependency>
     97         <!-- SpringFramework End -->
     98 
     99         <!--SpringSecurity Start-->
    100         <dependency>
    101             <groupId>org.springframework.security</groupId>
    102             <artifactId>spring-security-core</artifactId>
    103             <version>${security.version}</version>
    104         </dependency>
    105         <dependency>
    106             <groupId>org.springframework.security</groupId>
    107             <artifactId>spring-security-web</artifactId>
    108             <version>${security.version}</version>
    109         </dependency>
    110         <dependency>
    111             <groupId>org.springframework.security</groupId>
    112             <artifactId>spring-security-config</artifactId>
    113             <version>${security.version}</version>
    114         </dependency>
    115         <dependency>
    116             <groupId>org.springframework.security</groupId>
    117             <artifactId>spring-security-taglibs</artifactId>
    118             <version>${security.version}</version>
    119         </dependency>
    120         <dependency>
    121             <groupId>org.springframework.security</groupId>
    122             <artifactId>spring-security-crypto</artifactId>
    123             <version>${security.version}</version>
    124         </dependency>
    125         <!--SpringSecurity End-->
    126 
    127         <!--aspectj start-->
    128         <dependency>
    129             <groupId>org.aspectj</groupId>
    130             <artifactId>aspectjweaver</artifactId>
    131             <version>1.8.6</version>
    132         </dependency>
    133 
    134         <dependency>
    135             <groupId>org.aspectj</groupId>
    136             <artifactId>aspectjrt</artifactId>
    137             <version>1.8.6</version>
    138         </dependency>
    139         <!--aspectj end-->
    140 
    141         <!--c3p0-->
    142         <dependency>
    143             <groupId>com.mchange</groupId>
    144             <artifactId>c3p0</artifactId>
    145             <version>0.9.5.1</version>
    146         </dependency>
    147 
    148         <!--servlet/jsp api start-->
    149         <dependency>
    150             <groupId>javax.servlet</groupId>
    151             <artifactId>servlet-api</artifactId>
    152             <version>2.5</version>
    153         </dependency>
    154 
    155         <dependency>
    156             <groupId>javax.servlet.jsp</groupId>
    157             <artifactId>jsp-api</artifactId>
    158             <version>2.1</version>
    159             <scope>provided</scope>
    160         </dependency>
    161         <!--servlet/jsp api end-->
    162 
    163         <!--junit4-->
    164         <dependency>
    165             <groupId>junit</groupId>
    166             <artifactId>junit</artifactId>
    167             <version>4.11</version>
    168             <scope>test</scope>
    169         </dependency>
    170 
    171         <!--Mybatis-->
    172         <dependency>
    173             <groupId>org.mybatis</groupId>
    174             <artifactId>mybatis</artifactId>
    175             <version>3.3.0</version>
    176         </dependency>
    177         <!--Mybatis Spring整合-->
    178         <dependency>
    179             <groupId>org.mybatis</groupId>
    180             <artifactId>mybatis-spring</artifactId>
    181             <version>1.2.3</version>
    182         </dependency>
    183 
    184         <!--MySQL Driver-->
    185         <dependency>
    186             <groupId>mysql</groupId>
    187             <artifactId>mysql-connector-java</artifactId>
    188             <version>5.1.6</version>
    189         </dependency>
    190 
    191         <dependency>
    192             <groupId>jstl</groupId>
    193             <artifactId>jstl</artifactId>
    194             <version>1.2</version>
    195         </dependency>
    196 
    197         <!--JCaptcha验证码-->
    198         <dependency>
    199             <groupId>com.octo.captcha</groupId>
    200             <artifactId>jcaptcha</artifactId>
    201             <version>1.0</version>
    202         </dependency>
    203 
    204         <!--公共工具包-->
    205         <dependency>
    206             <groupId>org.apache.commons</groupId>
    207             <artifactId>commons-lang3</artifactId>
    208             <version>3.4</version>
    209         </dependency>
    210 
    211         <!--Ehcache缓存框架 start-->
    212         <dependency>
    213             <groupId>net.sf.ehcache</groupId>
    214             <artifactId>ehcache-core</artifactId>
    215             <version>2.6.11</version>
    216         </dependency>
    217         <!--Mybatis-Ehcache整合包-->
    218         <dependency>
    219             <groupId>org.mybatis</groupId>
    220             <artifactId>mybatis-ehcache</artifactId>
    221             <version>1.0.0</version>
    222         </dependency>
    223         <!--Ehcache-Web页面及对象缓存-->
    224         <dependency>
    225             <groupId>net.sf.ehcache</groupId>
    226             <artifactId>ehcache-web</artifactId>
    227             <version>2.0.4</version>
    228         </dependency>
    229         <dependency>
    230             <groupId>org.slf4j</groupId>
    231             <artifactId>slf4j-api</artifactId>
    232             <version>1.6.1</version>
    233         </dependency>
    234         <dependency>
    235             <groupId>org.slf4j</groupId>
    236             <artifactId>slf4j-log4j12</artifactId>
    237             <version>1.6.2</version>
    238         </dependency>
    239         <!--Ehcache缓存框架 end-->
    240     </dependencies>
    241 </project>

    项目结构截图


     

    [图是高清的,我从1080P的屏幕下截取的]

    [字太小可以下载到本地后放大,可以看得很清楚,亲测]

    [回头有空,我再补一个目录结构文档]

  • 相关阅读:
    SQL语法之DDL和DML
    流的装饰模式
    SharePoint 通过客户端API访问SharePoint状态栏
    SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
    30个特别酷的SharePoint站点
    在Sharepoint站点状态栏显示列表内容数据
    在SharePoint2010中如何使用状态栏?
    SPGridView and Pagination in SharePoint SharePoint中的SPGridView和分页功能
    一步步教你在SharePoint站点创建具有分页、排序、筛选功能的SPGridView Web部件
    使用对象模型读取SharePoint列表
  • 原文地址:https://www.cnblogs.com/wuxinzhe/p/5922449.html
Copyright © 2011-2022 走看看