SSM整合

SSM整合

以下是SSM整合所需要的所有依赖、配置文件、属性文件、web.xml
Mybatis 与spring整合见
spring与spring-mvc整合见

SSM一般依赖

 <dependencies>
<!--测试工具 -->
    <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.5.2</version>
    </dependency>
<!--数据库连接    -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.37</version>
    </dependency>

<!--数据源 spring/dbcp/c3p0   -->
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-commons</artifactId>
      <version>2.1.10.RELEASE</version>
    </dependency>

      <!-- mybatis -spring整合     -->
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.0</version>
          <scope>compile</scope>
      </dependency>
      <!--获取sqlSession -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.1.9.RELEASE</version>
      </dependency>

<!--spring 核心包   -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
<!--spring :aop    -->
      <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
        <version>1.8.5</version>
      </dependency>

<!--spring 事务管理    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
<!-- springMVC     -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>

<!--springMVC servlet    -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <scope>provided</scope>
      </dependency>
<!-- tomcat中也有servlet-api包,这样,发生了冲突,
因此限定该依赖包在编译期间起作用,运行时不起作用使用tomcat自己的     -->
<!-- springMVC JSP   -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jsp-api</artifactId>
          <version>2.0</version>
          <scope>provided</scope>
<!-- 同理 ,scope 限定在provided        -->
      </dependency>
<!--springMVC 文件上传    -->
      <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.3</version>
      </dependency>
<!--@ResponseBody 使用-->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.9.0</version> </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.9.0</version> </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>2.9.0</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.0.2.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>jstl-api</artifactId>
          <version>1.2</version>

      </dependency>
      <!--jstl标签-->
      <dependency>
          <groupId>taglibs</groupId>
          <artifactId>standard</artifactId>
          <version>1.1.2</version>
      </dependency>
<!-- spring-security     -->
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-web</artifactId>
          <version>5.1.5.RELEASE</version>
      </dependency>
<!-- jsp面可能会用到标签<security:authentication property="principal.username"/>获取登录用户名   -->
      <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-taglibs</artifactId>
      <version>5.1.5.RELEASE</version>
  </dependency>
      <dependency>
          <groupId>org.springframework.security</groupId>
          <artifactId>spring-security-config</artifactId>
          <version>5.1.5.RELEASE</version>
      </dependency>

      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
  </dependencies>

SSM 配置文件
MybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <package name="cn.itcast.pojo"/>
    </typeAliases>
<!--    <plugins>-->
<!--        &lt;!&ndash; com.github.pagehelper 为 PageHelper 类所在包名 &ndash;&gt;-->
<!--&lt;!&ndash;        <plugin interceptor="com.github.pagehelper.PageHelper">&ndash;&gt;-->
<!--            &lt;!&ndash; 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库&ndash;&gt;-->
<!--            <property name="dialect" value="mysql"/>-->
<!--        </plugin>-->
<!--    </plugins>-->
</configuration>

SSM
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

<!-- 扫描包,对标记注解的类加入到spring容器中     -->
       <context:component-scan base-package="cn.itcast">
<!-- 把controller 层对象交给spring-mvc管理,即在spring-mvc配置文件扫描contrller包         -->
           <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
       </context:component-scan>
       <context:property-placeholder location="classpath*:mysql/mysql.properties"></context:property-placeholder>

    <bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource" >
                 <!--支持el表达式-->
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

        <bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
             <property name="configLocation" value="classpath:MybatisConfig.xml"></property>
             <property name="dataSource" ref="basicDataSource"></property>
        </bean>

<!--    <bean class="org.mybatis.spring.mapper.MapperFactoryBean">-->
<!--        <property name="mapperInterface" value="cn.itcast.dao.CategoryDao"></property>-->
<!--        <property name="sqlSessionFactory" ref="mySqlSessionFactory"></property>-->
<!--    </bean>-->

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.itcast.dao"></property>
        </bean>
<!--spring注解事务  -->
    <!--事务管理器    -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 事物存在于connection中,因此要注入连接池      -->
        <property name="dataSource" ref="basicDataSource"></property>
    </bean>
    <!-- 开启事务注解   -->
   <tx:annotation-driven transaction-manager="txManager"></tx:annotation-driven>
    <!--aop自动代理    -->
    <!--aop自动代理    -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    <!--spring-security自带加密类:M5加密  -->
    <bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>
</beans>

SSM
application-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!--扫描controller层
    必须在springmvc配置文件中配,因为这个文件要被前端控制器加载,若没有配置则前端控制器找不到congtroler-->
    <context:component-scan base-package="cn.itcast.controller"></context:component-scan>
    <!-- 视图解析器-->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!--静态资源放行:
    DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,
    包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>
<!--映射器、适配器   -->
    <mvc:annotation-driven></mvc:annotation-driven>
</beans>

SSM
application-security.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:security="http://www.springframework.org/schema/security"
             xsi:schemaLocation="http://www.springframework.org/schema/security
   http://www.springframework.org/schema/security/spring-security-4.2.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
<!-- 放行静态资源、登录界面、注册界面   -->
    <security:http pattern="/index.jsp" security="none"></security:http>
    <security:http pattern="/pages/register.jsp" security="none"></security:http>
<!--    <security:http pattern="/cn/itcast/controller/CategoryController.java"></security:http>-->

<!--    <security:http pattern="/category/register"></security:http>-->
<!-- 配置   -->
    <security:http auto-config="false" use-expressions="false">
<!--拦截所有资源,允许ROLE_ADMIN权限通过-->
        <intercept-url pattern="/**" access="ROLE_ADMIN"></intercept-url>
<!--配置登录界面、登录url、登录反馈 (/开头)       -->
        <form-login login-page="/index.jsp"
                    login-processing-url="/login"
                    default-target-url="/pages/success.jsp"
                    authentication-failure-url="/pages/error.jsp"></form-login>
<!-- 退出设置  (/开头)    -->
        <logout invalidate-session="true" logout-success-url="/index.jsp" logout-url="/logout"></logout>
        <!--关闭跨站访问,不关闭会出现拒绝访问-->
        <security:csrf disabled="true"></security:csrf>
<!-- 处理框架页       -->
        <headers>
            <frame-options policy="SAMEORIGIN"/>
        </headers>
    </security:http>

    <security:authentication-manager>
        <authentication-provider user-service-ref="userService">
            <password-encoder ref="passwordEncoder"></password-encoder>
<!--            <user-service>-->
<!-- 临时认证用户   -->
<!--                <user name="admin" authorities="ROLE_ADMIN" password="{noop}admin"></user>-->
<!--            </user-service>-->
        </authentication-provider>
    </security:authentication-manager>

</beans:beans>

SSM
log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE, info

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n


SSM
mysql.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mydata
jdbc.username=root
jdbc.password=root

SSM
web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--全局参数:指定配置文件的路径,加载所有配置文件-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/application*.xml</param-value>
  </context-param>

  <!--编码过滤器,解决controller请求中文参数乱码问题-->
  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>
  <!--spring-security配置-->
  <!--配置委派代理过滤器: filter-name必须是:springSecurityFilterChain  -->
  <filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


  <!--监听器,配置spring容器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!--前端控制器-->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/application-mvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
<!-- /:拦截所有资源包括请求和静态资源,因此springmvc的配置文件要放行静态资源   -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>



</web-app>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值