码迷,mamicode.com
首页 > 其他好文 > 详细

SSM框架整合

时间:2018-02-19 23:21:18      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:mvn   insert   ppi   bat   ica   cli   dem   resultset   nap   

烦了我几天,年都没心情过,今晚终于搞定了。做了一个简单的ssm整合demo。用到了逆向工程,注解配置。

  1. 工程结构

    技术分享图片

     

    util包里面放的是逆向工程java类的代码,也可以用eclipse插件自动生成,因为之前下载有点问题就索性找了段代码来实现逆向工程。具体操作网搜 这里不多说了。

     

    技术分享图片

    技术分享图片

     

  2. mybytis配置文件(SqlMapConfig.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="com.eangaie.model" />

    </typeAliases>

    <!-- <mappers> 这里强调一下! 不是可以不用配,而是不能配!配置了的话会导致404错误

        <package name="com.eangaie.mapper"/>

    </mappers> -->

    </configuration>

     

  3. 数据库配置(jdbc.properties)

    jdbc.driver=com.mysql.jdbc.Driver

    jdbc.url=jdbc:mysql://localhost:3306/yanjie?characterEncoding=utf-8

    jdbc.username=root

    jdbc.password=123456

     

  4. Spring配置文件

     

    约束这里就不加进去了 太占空间

    4.1 applicationContext-dao.xml

     

    <!-- 数据库连接池 -->

    <!-- 加载配置文件 -->

    <context:property-placeholder location="classpath:properties/*.properties" />

    <!-- 数据库连接池 -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

    destroy-method="close">

    <property name="url" value="${jdbc.url}" />

    <property name="username" value="${jdbc.username}" />

    <property name="password" value="${jdbc.password}" />

    <property name="driverClassName" value="${jdbc.driver}" />

    <property name="maxActive" value="10" />

    <property name="minIdle" value="5" />

    </bean>

     

     

    <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包 -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

    <!-- 数据库连接池 -->

    <property name="dataSource" ref="dataSource" />

    <!-- 加载mybatis的全局配置文件 -->

    <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />

    </bean>

     

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <property name="basePackage" value="com.eangaie.mapper" />

    </bean>

     

    注意这里要把mapper文件和对应的java文件都放在mapper包下面!

    4.2.applicationContext-service.xml

     

    <context:component-scan base-package="com.eangaie.service"/>

     

    4.3 事务管理applicationContext-trans.xml

    <!-- 事务管理器 -->

    <bean id="transactionManager"

    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <!-- 数据源 -->

    <property name="dataSource" ref="dataSource" />

    </bean>

    <!-- 通知 -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

    <tx:attributes>

    <!-- 传播行为 -->

    <tx:method name="save*" propagation="REQUIRED" />

    <tx:method name="insert*" propagation="REQUIRED" />

    <tx:method name="add*" propagation="REQUIRED" />

    <tx:method name="create*" propagation="REQUIRED" />

    <tx:method name="delete*" propagation="REQUIRED" />

    <tx:method name="update*" propagation="REQUIRED" />

    <tx:method name="find*" propagation="SUPPORTS" read-only="true" />

    <tx:method name="select*" propagation="SUPPORTS" read-only="true" />

    <tx:method name="get*" propagation="SUPPORTS" read-only="true" />

    </tx:attributes>

    </tx:advice>

    <!-- 切面 -->

    <aop:config>

    <aop:advisor advice-ref="txAdvice"

    pointcut="execution(* com.eangaie.service.*.*(..))" />

    </aop:config>

     

    4.4 springmvc配置文件

    <context:component-scan base-package="com.eangaie" />

        <mvc:annotation-driven />

        <!-- 资源过滤没有这个会加载不出css等文件 -->

        <mvc:resources location="/js/" mapping="/js/**" />

        <mvc:resources location="/css/" mapping="/css/**" />

        <bean

            class="org.springframework.web.servlet.view.InternalResourceViewResolver">

            <property name="prefix" value="/view/jsp/" />

            <property name="suffix" value=".jsp" />

        </bean>    

     

  5. log4j配置文件

    ### set log levels ###

    log4j.rootLogger = INFO , console , debug , error

     

    ### console ###

    log4j.appender.console = org.apache.log4j.ConsoleAppender

    log4j.appender.console.Target = System.out

    log4j.appender.console.layout = org.apache.log4j.PatternLayout

    log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n

     

    ### log file ###

    log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender

    log4j.appender.debug.File = ../logs/springmvc-demo.log

    log4j.appender.debug.Append = true

    log4j.appender.debug.Threshold = INFO

    log4j.appender.debug.layout = org.apache.log4j.PatternLayout

    log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n

     

    ### exception ###

    log4j.appender.error = org.apache.log4j.DailyRollingFileAppender

    log4j.appender.error.File = ../logs/springmvc-demo_error.log

    log4j.appender.error.Append = true

    log4j.appender.error.Threshold = ERROR

    log4j.appender.error.layout = org.apache.log4j.PatternLayout

    log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n

     

     

    ###\u9700\u8981\u58F0\u660E\uFF0C\u7136\u540E\u4E0B\u65B9\u624D\u53EF\u4EE5\u4F7Fdruid sql\u8F93\u51FA\uFF0C\u5426\u5219\u4F1A\u629B\u51FAlog4j.error.key not found

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.Target=System.out

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %l %c%n%p: %m%n

     

    ### druid sql ###

    log4j.logger.druid.sql=warn,stdout

    log4j.logger.druid.sql.DataSource=warn,stdout

    log4j.logger.druid.sql.Connection=warn,stdout

    log4j.logger.druid.sql.Statement=warn,stdout

    log4j.logger.druid.sql.ResultSet=warn,stdout

     

     

    6.web.xml文件的配置

    <!-- 加载spring容器 -->

        <context-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>classpath:spring/applicationContext*.xml</param-value>

        </context-param>

        <listener>

            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

        </listener>

     

        <!-- 解决post乱码 -->

        <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>

            <!-- <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value>

                </init-param> -->

        </filter>

        <filter-mapping>

            <filter-name>CharacterEncodingFilter</filter-name>

            <url-pattern>/*</url-pattern>

        </filter-mapping>

     

     

        <!-- springmvc的前端控制器 -->

        <servlet>

            <servlet-name>ssm-manager</servlet-name>

            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

            <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->

            <init-param>

                <param-name>contextConfigLocation</param-name>

                <param-value>classpath:spring/springmvc.xml</param-value>

            </init-param>

            <load-on-startup>1</load-on-startup>

        </servlet>

        <servlet-mapping>

            <servlet-name>ssm-manager</servlet-name>

            <url-pattern>/</url-pattern>

        </servlet-mapping>

        <!-- 日志记录 -->

        <context-param>

            <!-- 日志配置文件路径 -->

            <param-name>log4jConfigLocation</param-name>

            <param-value>classpath:log4j.properties</param-value>

        </context-param>

        <context-param>

            <!-- 日志页面的刷新间隔 -->

            <param-name>log4jRefreshInterval</param-name>

            <param-value>6000</param-value>

        </context-param>

        <listener>

            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

        </listener>

     

    7.pom配置文件

    <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/xsd/maven-4.0.0.xsd">

        <modelVersion>4.0.0</modelVersion>

        <groupId>com.eangaie</groupId>

        <artifactId>ssm</artifactId>

        <version>0.0.1-SNAPSHOT</version>

        <packaging>war</packaging>

        <properties>

            <!-- Spring版本号 -->

            <spring.version>4.3.8.RELEASE</spring.version>

            <!-- log4j日志文件管理包版本 -->

            <slf4j.version>1.6.6</slf4j.version>

            <log4j.version>1.2.12</log4j.version>

            <!-- junit版本号 -->

            <junit.version>4.10</junit.version>

            <!-- mybatis版本号 -->

            <mybatis.version>3.2.1</mybatis.version>

        </properties>

     

        <dependencies>

     

            <dependency>

                <groupId>javax</groupId>

                <artifactId>javaee-api</artifactId>

                <version>8.0</version>

                <scope>provided</scope>

            </dependency>

     

            <!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->

            <dependency>

                <groupId>javax</groupId>

                <artifactId>javaee-web-api</artifactId>

                <version>8.0</version>

                <scope>provided</scope>

            </dependency>

            <!-- 添加Spring依赖 -->

            <dependency>

                <groupId>org.springframework</groupId>

                <artifactId>spring-core</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-context</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-aop</artifactId>

                <version>${spring.version}</version>

            </dependency>

            <dependency>

                <groupId>org.springframework</groupId>

                <artifactId>spring-aspects</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-web</artifactId>

                <version>${spring.version}</version>

            </dependency>

     

            <!--单元测试依赖 -->

            <dependency>

                <groupId>junit</groupId>

                <artifactId>junit</artifactId>

                <version>${junit.version}</version>

                <scope>test</scope>

            </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 -->

     

            <!--spring单元测试依赖 -->

            <dependency>

                <groupId>org.springframework</groupId>

                <artifactId>spring-test</artifactId>

                <version>${spring.version}</version>

                <scope>test</scope>

            </dependency>

     

            <!--mybatis依赖 -->

            <dependency>

                <groupId>org.mybatis</groupId>

                <artifactId>mybatis</artifactId>

                <version>${mybatis.version}</version>

            </dependency>

            <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->

            <dependency>

                <groupId>commons-dbcp</groupId>

                <artifactId>commons-dbcp</artifactId>

                <version>1.4</version>

            </dependency>

     

            <!-- MySQL相关包 -->

            <dependency>

                <groupId>mysql</groupId>

                <artifactId>mysql-connector-java</artifactId>

                <version>5.1.26</version>

            </dependency>

            <!-- 数据库连接池 -->

            <dependency>

                <groupId>com.alibaba</groupId>

                <artifactId>druid</artifactId>

                <version>1.0.20</version>

            </dependency>

     

            <!-- Spring集成MyBatis -->

            <dependency>

                <groupId>org.mybatis</groupId>

                <artifactId>mybatis-spring</artifactId>

                <version>1.2.3</version>

            </dependency>

     

            <!-- JSP标准标签库 -->

            <dependency>

                <groupId>javax.servlet</groupId>

                <artifactId>jstl</artifactId>

                <version>1.2</version>

            </dependency>

     

            <!-- Json -->

            <!-- 格式化对象,方便输出日志 -->

            <dependency>

                <groupId>com.alibaba</groupId>

                <artifactId>fastjson</artifactId>

                <version>1.2.6</version>

            </dependency>

            <dependency>

                <groupId>org.codehaus.jackson</groupId>

                <artifactId>jackson-mapper-asl</artifactId>

                <version>1.9.13</version>

            </dependency>

            <!-- 上传组件包 -->

            <dependency>

                <groupId>commons-fileupload</groupId>

                <artifactId>commons-fileupload</artifactId>

                <version>1.3.1</version>

            </dependency>

            <dependency>

                <groupId>commons-io</groupId>

                <artifactId>commons-io</artifactId>

                <version>2.4</version>

            </dependency>

            <dependency>

                <groupId>commons-codec</groupId>

                <artifactId>commons-codec</artifactId>

                <version>1.9</version>

            </dependency>

            <dependency>

                <groupId>org.mybatis.generator</groupId>

                <artifactId>mybatis-generator-core</artifactId>

                <version>1.3.2</version>

            </dependency>

        </dependencies>

        <build>

            <finalName>ssm</finalName>

            <resources>

                <resource>

                    <directory>src/main/java</directory>

                    <includes>

                        <include>**/*.properties</include>

                        <include>**/*.xml</include>

                    </includes>

                    <filtering>false</filtering>

                </resource>

                <resource>

                    <directory>src/main/resources</directory>

                    <includes>

                        <include>**/*.properties</include>

                        <include>**/*.xml</include>

                    </includes>

                    <filtering>false</filtering>

                </resource>

            </resources>

            <!-- <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId>

                <configuration> <source>1.8</source> <target>1.8</target> </configuration>

                </plugin> </plugins> -->

        </build>

    </project>

     

     

  6. jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>Insert title here</title>

    </head>

    <body>

    <h2>用户id: ${user.userId}</h2>

    <h2>用户名称: ${user.userName}</h2>

    <h2>用户真实姓名: ${user.userRealName}</h2>

    <h2>用户 性别: ${user.userGender}</h2>

    <h2>用户邮箱: ${user.userEmail}</h2>

    </body>

    </html>

     

  7. mapper文件

    mapper文件和对应的java文件,这里就没有手写了,通过mybatis逆向工程生成的。同样的模型层也如此

     

  8. service层

    10.1 接口

    package com.eangaie.service;

     

    import com.eangaie.model.User;

     

    public interface userService {

        

        void insertUser(User user) throws Exception;

        

        void deleteUser(int id) throws Exception;

        

        void updateUser(int id,User user) throws Exception;

        

        User selectUser(int id) throws Exception;

    }

    10.2 实现类    

    记得加上@Service注解哦!!

    package com.eangaie.service.impl;

     

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Service;

     

    import com.eangaie.mapper.UserMapper;

    import com.eangaie.model.User;

    import com.eangaie.service.userService;

    @Service

    public class userServiceImpl implements userService {

        

        @Autowired//自动填充usermapper

        UserMapper usermapper;

        @Override

        public void insertUser(User user) throws Exception {

            // TODO Auto-generated method stub

            usermapper.insert(user);

        }

     

        @Override

        public void deleteUser(int id) throws Exception {

            // TODO Auto-generated method stub

            usermapper.deleteByPrimaryKey(id);

        }

     

        @Override

        public void updateUser(int id,User user) throws Exception {

            // TODO Auto-generated method stub

            usermapper.updateByPrimaryKey(user);

        }

     

        @Override

        public User selectUser(int id) throws Exception {

            // TODO Auto-generated method stub

            User user = new User();

            user=usermapper.selectByPrimaryKey(id);

            return user;

        }

     

    }

     

     

  9. 控制层

    package com.eangaie.controller;

     

    import javax.servlet.http.HttpServletRequest;

     

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Controller;

    import org.springframework.web.bind.annotation.RequestMapping;

     

    import com.eangaie.model.User;

    import com.eangaie.service.userService;

     

    @Controller// 不能漏

    public class userController {

        @Autowired

        userService userservice;

        @RequestMapping("/getUser")

        public String getUser(HttpServletRequest request) throws Exception {

            User user=new User();

            user=userservice.selectUser(1);

            request.setAttribute("user", user);

            return "success";

        }

    }

     

    最后部署Tomcat运行访问

    http://localhost:8080/ssm/getUser

    技术分享图片

     

    大功告成!

SSM框架整合

标签:mvn   insert   ppi   bat   ica   cli   dem   resultset   nap   

原文地址:https://www.cnblogs.com/w53064/p/8454595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!