SSM框架整合 spring3.2.9 + spring mvc3.2.9 + mybatis3.2.8 + Druid数据源 + log4j2
来源:互联网 发布:通联数据校园招聘 编辑:程序博客网 时间:2024/05/17 22:40
SSM框架整合 spring3.2.9 + spring mvc3.2.9 + mybatis3.2.8 + Druid数据源 + log4j2
一、整合所需jar包:
二、项目目录结构
三、配置文件
1、springmvc的配置文件 springMVC.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:p="http://www.springframework.org/schema/p" 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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 添加注解驱动 --> <mvc:annotation-driven /> <!-- 默认扫描的包路径 --> <context:component-scan base-package="com.malone"/> <!-- 过滤静态文件的拦截 --> <mvc:default-servlet-handler/> <!-- 定义跳转的文件的前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/" /> <property name="suffix" value=".jsp" /> </bean></beans>
2、spring整合mybatis配置文件applicationContext-comm.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:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 引入jdbc.properties --> <context:property-placeholder location="classpath*:jdbc.properties"/> <!-- kaptcha v2.3.2 --> <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google.code.kaptcha.util.Config"> <constructor-arg> <props> <prop key="kaptcha.border">no</prop> <prop key="kaptcha.border.color">105,179,90</prop> <prop key="kaptcha.textproducer.font.color">black</prop> <prop key="kaptcha.image.width">250</prop> <prop key="kaptcha.textproducer.font.size">70</prop> <prop key="kaptcha.image.height">90</prop> <prop key="kaptcha.session.key">KAPTCHA_SESSION_KEY</prop> <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop> <prop key="kaptcha.textproducer.char.length">5</prop> <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> </props> </constructor-arg> </bean> </property> </bean> <!-- 数据源 使用阿里Druid数据源 也可以用其它数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="${db-driver}" /> <property name="url" value="${db-url}" /> <property name="username" value="${db-username}" /> <property name="password" value="${db-password}" /> <property name="maxActive" value="20" /> <property name="initialSize" value="1" /> <property name="maxWait" value="60000" /> <property name="minIdle" value="1" /> <property name="timeBetweenEvictionRunsMillis" value="3000" /> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 'x' FROM DUAL" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- mysql 不支持 poolPreparedStatements--> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> <!-- 开启Druid的监控统计功能 --> <property name="filters" value="stat" /> </bean> <!-- Mybatis SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <property name="dataSource" ref="dataSource" /> </bean> <!-- 事务管理 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 字段扫描类注解 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.malone" /> </bean> <!-- 使用声明式 事务管理--> <tx:annotation-driven transaction-manager="txManager" /></beans>
3、数据库连接参数配置 jdbc.properties
###数据库连接参数配置###db-driver=oracle.jdbc.driver.OracleDriverdb-url=jdbc:oracle:thin:@localhost:1521:orcldb-username=pengldb-password=tiger
4、mybatis配置mybatis-config.xml (仅用来引入sqlmap映射文件)
<?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> <settings> <setting name="cacheEnabled" value="true" /> <!-- 指定日志框架为LOG4J2 --> <setting name="logImpl" value="LOG4J2" /> </settings> <mappers> <!-- <mapper resource="com/malone/test/map/sqlmap-test.xml" /> --> </mappers></configuration>
5、Log4j2配置文件
<?xml version="1.0" encoding="UTF-8"?><Configuration status="off" monitorInterval="10"> <properties> <property name="LOG_HOME">logs</property> <property name="FILE_NAME">malone</property> </properties> <Appenders> <!-- 控制台日志输出 --> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="[%-5p] %d %c - %m%n" /> </Console> <!-- 循环文件日志输出 --> <RollingRandomAccessFile name="running-log" fileName="${LOG_HOME}/${FILE_NAME}.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz"> <PatternLayout pattern="[%-5p] %d %c - %m%n" /> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="60 MB" /> </Policies> <DefaultRolloverStrategy max="20" /> </RollingRandomAccessFile> </Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="Console" /> <AppenderRef ref="running-log" /> </Root> </Loggers></Configuration>
6、最后 web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>通用后台管理系统</display-name> <!-- 阿里数据源 BENGIN --> <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping> <!-- 阿里数据源 END --> <!-- spring3 mvc BEGIN --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/springMVC.xml,classpath*:/applicationContext-comm.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- spring3 mvc END --> <!-- Log4j2 BEGIN --> <listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> </listener> <filter> <filter-name>log4jServletFilter</filter-name> <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> <!-- Log4j2 END --> <!-- Spring字符集过滤器 BENGIN--> <filter> <filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring字符集过滤器 END--> <!-- 系统首页 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
四、测试表建立
-- Create tablecreate table TS_TEST( id NUMBER, name VARCHAR2(20), age NUMBER)
五、java代码
1、映射实体类
package com.malone.test.dto;import java.io.Serializable;public class TestVo implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
2、controller
package com.malone.test.control;import javax.servlet.http.HttpServletRequest;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import com.malone.test.domain.Test;import com.malone.test.dto.TestVo;@Controller@RequestMapping("/test")public class TestControl { private Logger _logger = LogManager.getLogger(); @Autowired @Qualifier("testImpl") private Test test; /** * 测试 * @return */ @RequestMapping(value = "/index") public String index(@RequestParam String id, HttpServletRequest request){ _logger.info("进入Control... , 获取到参数:" + id); TestVo testbean = test.selectUserById(Integer.parseInt(id)); request.setAttribute("testbean", testbean); return "index"; }}
3、映射类
package com.malone.test.domain;import org.apache.ibatis.annotations.Select;import com.malone.test.dto.TestVo;public interface Test { @Select("select * from ts_test where id = #{id}") //这里可以直接用注解 , 也可以通过配置文件写 ,配置文件需要引入到mybatis-config.xml public abstract TestVo selectUserById(int id);}
package com.malone.test.domain;import org.apache.ibatis.session.SqlSessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.malone.test.dto.TestVo;@Service("testImpl")public class TestImpl implements Test { @Autowired private SqlSessionFactory sessionFactory; public TestVo selectUserById(int id) { TestVo testbean = sessionFactory.openSession().selectOne("com.malone.test.domain.Test.selectUserById" ,id); return testbean; }}
4、mybatis映射文件 sqlmap-test.xml //如果在上面的映射类中使用了注解方式,则不需要这个配置文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.malone.test.domain.Test"> <select id="selectUserById" resultType="com.malone.test.dto.Ts_Test" parameterType="java.util.HashMap"> select * from ts_test where id = #{id} </select></mapper>
5、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>demo</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1>${testbean.id}</h1> <h1>${testbean.name}</h1> <h1>${testbean.age}</h1> </body></html>
六、运行结果
Log4j2 日志 和 Mybatis sql日志
阿里数据源监控页面
</div> <div class="pinfortext"> <a href="http://blog.csdn.net/iverson3sod/article/details/45583031" target="_blank">查看原文>></a> <span> <a href="javascript:void(0)" id="click_logo" title="喜欢"> <span><i class="fa fa-heart-o" id="support_logo"></i></span> <em>1</em> </a> </span> </div> <div class="divcontent bordertop"> <span class="title">看过本文的人也看了:</span> <ul class="clearfix"> <li> <a class="yellow" href="http://lib.csdn.net/base/java/structure" target="_blank" title="Java 知识结构图"> <i class="cirle"></i> Java 知识结构图 </a> </li> <li> <div class="csdn-tracking-statistics" data-mod="popu_248_lib_13"> <a basename="java" knid="244" contentid="3718" href="http://lib.csdn.net/article/java/3718" target="_blank" title="关于log4j2的重新加载,以及不同级别日志输出到不同日志文件"> <i class="cirle"></i> 关于log4j2的重新加载,以及不同级别日... </a> </div> </li> <li> <div class="csdn-tracking-statistics" data-mod="popu_248_lib_13"> <a basename="java" knid="244" contentid="3978" href="http://lib.csdn.net/article/java/3978" target="_blank" title="log4j2使用笔记"> <i class="cirle"></i> log4j2使用笔记 </a> </div> </li> <li> <div class="csdn-tracking-statistics" data-mod="popu_248_lib_13"> <a basename="java" knid="244" contentid="38138" href="http://lib.csdn.net/article/java/38138" target="_blank" title="Log4j2 JDBCAppender的使用"> <i class="cirle"></i> Log4j2 JDBCAppender的使用 </a> </div> </li> <li> <div class="csdn-tracking-statistics" data-mod="popu_248_lib_13"> <a basename="java" knid="244" contentid="52354" href="http://lib.csdn.net/article/java/52354" target="_blank" title="slf4j绑定log4j2日志系统的过程(源码分析)"> <i class="cirle"></i> slf4j绑定log4j2日志系统的过程(源码分... </a> </div> </li> <li> <div class="csdn-tracking-statistics" data-mod="popu_248_lib_13"> <a basename="java" knid="244" contentid="7973" href="http://lib.csdn.net/article/java/7973" target="_blank" title="Log4j 2.x使用注意事项"> <i class="cirle"></i> Log4j 2.x使用注意事项 </a> </div> </li> </ul> <div class="clearfix"> </div> </div> </div>
0 0
- SSM框架整合 spring3.2.9 + spring mvc3.2.9 + mybatis3.2.8 + Druid数据源 + log4j2
- SSM框架整合 spring3.2.9 + spring mvc3.2.9 + mybatis3.2.8 + Druid数据源 + log4j2
- spring3+struts2+mybatis3框架整合
- spring3.1.1 spring mvc 和mybatis3框架整合配置
- spring3+mybatis3框架整合 启动错误记录
- spring mvc + spring3整合mybatis3的demo!!!
- Spring整合阿里巴巴开源数据源Druid
- Spring整合阿里巴巴开源数据源Druid
- Spring-mvc整合mybatis-oracle11g-druid数据源
- Spring-mvc整合mybatis-oracle11g-druid数据源
- SSM框架——详细整合教程(Spring 4.0.2+SpringMVC 4.0.2+MyBatis3.2.6)
- MyBatis3整合Spring3、SpringMVC3
- MyBatis3整合Spring3、SpringMVC3
- Spring3 整合 Mybatis3
- MyBatis3整合Spring3、SpringMVC3
- MyBatis3整合Spring3、SpringMVC3
- MyBatis3整合Spring3、SpringMVC3
- 整合Spring3及MyBatis3
- 网页导航菜单制作
- CCF 炉石传说
- Android 之 下拉框(Spinner)的使用
- js中变量和jsp中java代码中变量互相访问解决方案
- [Bootkit]开源Bootkit技术(二)eEyeBootRoot
- SSM框架整合 spring3.2.9 + spring mvc3.2.9 + mybatis3.2.8 + Druid数据源 + log4j2
- 杨辉三角(空格对齐)
- QPS 和并发:如何衡量服务器端性能
- tf.train.slice_input_produce命令
- 【Socket】关于socket长连接的心跳包
- Windows使用ssh登入远程服务器(包含mac版)
- 跳出CSS浏览器兼容性那些坑
- Android之Fragment的静态使用
- 生物合并 贪心