`
wangfeiaini
  • 浏览: 53388 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring/struts/mybatis搭建开发环境

阅读更多
    1. eclipse下新建一个web项目,项目结构图如下:


 

 其中java文件夹存放以后编写的java文件,resource文件夹存放service、dao、struts的配置文件,sqlmap文件夹存放编程的sqlmap文件,datasource文件夹存放数据源配置的文件。

   2.编写web.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>water</display-name>
   <context-param>
      <param-name>configuration</param-name>
      <param-value>WEB-INF/applicationContext*.xml</param-value>
  </context-param>
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
		<listener-class>
			org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>  
	   <filter-name>struts2</filter-name>  
	   <url-pattern>/*</url-pattern>  
  </filter-mapping> 
   
  <context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
	<listener>
		<listener-class>
			org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>
  
  <filter>
      <filter-name>encodingfilter</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>
  <filter-mapping>
      <filter-name>encodingfilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  <listener>
      <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  </listener>
</web-app>

 3.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"
	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">
           <!-- 导入数据源 -->
         <import resource="classpath:datasource/spring-datasource.xml"/>  
         
         <!--  -->
         <import resource="classpath:com/water3/resource/user/service/spring-user-service.xml"/>
    	<import resource="classpath:com/water3/resource/user/dao/spring-user-dao.xml"/>
//以上三个import是位于resource文件夹下配置文件,在此导入总配置文件中
</beans>

 4.配置日志文件log4j.properties:

### set log levels ###
log4j.rootLogger = DEBUG, stdout,D
### 输出到控制台 ###
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{ABSOLUTE} %5p %c:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log 
## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR 
## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n 

 5.struts.xml文件引入公共配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC        
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"        
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
    
    <constant name="struts.action.extension" value="do"></constant><!-- 请求action时url以.do结束 -->
	<constant name="struts.multipart.maxSize" value="166976000" />
	<constant name="struts.ui.theme" value="simple" />
	<include file="struts-default.xml"></include>
	<include file="struts_common.xml"></include>//这个文件存放拦截器之类的公共配置
	<!-- 导入struts配置 -->
	</include>
	
    
</struts>

 6.数据文件配置water3.properties:

test.proxool.driver-class=com.mysql.jdbc.Driver
test.proxool.user=root
test.proxool.password=root
test.proxool.alias=test_proxool
test.proxool.driver-url=jdbc:mysql://XXXX:3306/test?characterEncoding=utf-8&useUnicode=true
test.proxool.house-keeping-sleep-time=40000
test.proxool.house-keeping-test-sql=SELECT ''
test.proxool.maximum-connection-count=20
test.proxool.minimum-connection-count=5
test.proxool.maximum-connection-lifetime=18000000
test.proxool.simultaneous-build-throttle=5
test.proxool.recently-started-threshold=40000
test.proxool.overload-without-refusal-lifetime=50000
test.proxool.maximum-active-time=60000
test.proxool.verbose=true
test.proxool.trace=true
test.proxool.fatal-sql-exception=Fatal error
##最少连接数  
test.proxool.prototype-count=5
test.proxool.statistics-log-level=ERROR

 spring-datasource.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"
	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">
           
    <context:property-placeholder location="classpath:datasource/*.properties" />
    <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
		<property name="driver">
			<value>${test.proxool.driver-class}</value>
		</property>
		<property name="driverUrl">
			<value>${test.proxool.driver-url}</value>
		</property>
		<property name="user">
			<value>${test.proxool.user}</value>
		</property>
		<property name="password">
			<value>${test.proxool.password}</value>
		</property>
		<property name="alias">
			<value>${test.proxool.alias}</value>
		</property>
		<property name="maximumActiveTime">
			<value>${test.proxool.maximum-active-time}</value>
		</property>
		<property name="houseKeepingSleepTime">
			<value>${test.proxool.house-keeping-sleep-time}</value>
		</property>
		<property name="maximumConnectionCount">
			<value>${test.proxool.maximum-connection-count}</value>
		</property>
		<property name="minimumConnectionCount">
			<value>${test.proxool.minimum-connection-count}</value>
		</property>
		<property name="prototypeCount">
			<value>${test.proxool.prototype-count}</value>
		</property>
		<property name="trace">
			<value>${test.proxool.trace}</value>
		</property>
		<property name="statisticsLogLevel">
			<value>${test.proxool.statistics-log-level}</value>
		</property>
		<property name="maximumConnectionLifetime">
			<value>${test.proxool.maximum-connection-lifetime}</value>
		</property>
	</bean>
    <!--配置spring事务管理 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource">
		</property>
	</bean>
	<!--配置backendSessionFactory -->
	<bean id="backendSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource">
			<ref local="dataSource"></ref>
		</property>
	<property name="configLocation" value="classpath:datasource/water_datasource.xml"></property>
	  <property name="mapperLocations">
			<list>
				<value>classpath*:/sqlmap/**/sqlmap*.xml</value>
			</list>
		</property> 
	</bean>
	
</beans>

 此处注意,mybatis需要配置一个别名文件water_datasource.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>
	       
	    </typeAliases>
	    
	    
	</configuration>

 至此,项目基本搭建完毕,下图为所需的包:

 

 附:拦截器配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
     
     <package name="waterInterceptors" extends="struts-default">
         <interceptors>
             <interceptor name="myauthority" class="com.water3.java.interceptor.RequestListenerInsterceptor">
             </interceptor>
             <interceptor-stack name="mydefault">  
                <interceptor-ref name="defaultStack" />  
                <interceptor-ref name="myauthority" />  
            </interceptor-stack> 
         </interceptors>
          <!-- 定义全局Result -->  
        <global-results>  
            <!-- 当返回login视图名时,转入/login.jsp页面 -->  
            <result name="success">/index.jsp</result>  
        </global-results>  
     </package>
     
 </struts>
public class RequestListenerInsterceptor extends AbstractInterceptor{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1088113971659489138L;

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		ActionContext act = invocation.getInvocationContext();
		System.out.println("拦截器测试");
		return invocation.invoke();
	}
	
}

 公共类:

//dao基类
public class BaseDaoImpl<T, PK extends Serializable> extends SqlSessionTemplate{

	public BaseDaoImpl(SqlSessionFactory sqlSessionFactory) {
		super(sqlSessionFactory);
	}

	
	
}
//
public class ModelDrivenActionSupport<T> extends BaseActionSupport implements ScopedModelDriven<T>{

	/**
	 * 
	 */
	private static final long serialVersionUID = 4711438804682348737L;

	private T model;
	    
	private String scope;
	
	@Override
	public T getModel() {
		return model;
	}

	@Override
	public String getScopeKey() {
		return scope;
	}

	@Override
	public void setModel(T model) {
		this.model = model;
	}

	@Override
	public void setScopeKey(String scope) {
		this.scope = scope;
	}

}
//
public class BaseActionSupport extends ActionSupport implements SessionAware,ServletRequestAware,ServletResponseAware{

	/**
	 * 
	 */
	private static final long serialVersionUID = -5514461732932831728L;

	public static final String LIST = "list";

	public static final String SAVE = "save";

	public static final String NORESULT = "noresult";

	private String priMsg;

	ActionContext context = ActionContext.getContext();

	HttpServletRequest request;

	HttpServletResponse response;

	@SuppressWarnings("rawtypes")
	SessionMap session;

	
	public String param(String paramName) {
		return request.getParameter(paramName);
	}

	@SuppressWarnings("rawtypes")
	public void setSession(Map map) {
		this.session = (SessionMap) map;
	}

	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}

	public void setServletResponse(HttpServletResponse response) {
		this.response = response;
	}

	public HttpServletRequest getRequest() {
		return request;
	}

	public HttpServletResponse getResponse() {
		return response;
	}

	public SessionMap getSession() {
		return session;
	}

	public String getPriMsg() {
		return priMsg;
	}

	public void setPriMsg(String priMsg) {
		this.priMsg = priMsg;
	}

	
}



 

  • 大小: 21.6 KB
  • 大小: 54.5 KB
  • 大小: 32.7 KB
分享到:
评论

相关推荐

    Spring+struts2+mybatis项目开发环境搭建

    Spring+struts2+mybatis项目开发环境搭建

    struts2+spring+mybatis框架

    struts2+spring+mybatis框架,附带数据库建表,适合初学者搭建环境。

    Spring+struts2+mybatis3环境配置

    搭建的一个SSM开发环境,包括事务回滚,日志记录等。欢迎下载

    使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

    做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般...今天来总结一下如何使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境。第一步:第二步:第三步:创建好的项目如下图

    图书管理系统.zip

    1:开发工具:最开始使用myecplise ,后来转ecplise 2:Java环境,1.8 3:数据库环境:5(5.5和5.7均运行过) 4:tomcat:7 5:easy ui 1.5,hibernate用的是3的版本 本系统是整合了ssh框架的一个简单的图书管理系统,...

    springMVC教学视频详解(包括spring和mybatis的整合)

    此视频包含:springmvc入门教程(原理分析、环境搭建、前端控制器配置、Handler编写调试、非注解映射器和适配器、注解映射器和适配器、前端控制器源代码分析、视图解析器配置前缀和后缀);springmvc和mybatis整合;...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    搭建一个java的开发环境.mp4 │ Java面试题04.java中int占几个字节.mp4 │ Java面试题05.java面向对象的特征.mp4 │ Java面试题06.装箱和拆箱.mp4 │ Java面试题07.==和equals的区别.mp4 │ Java面试题08.String.mp4...

    大数据培训课程安排.pdf

    主要技术包括:Hibernate、Spring、SpringMVC、log4j slf4j 整合、myBatis、struts2、Shiro 、redis、流程引擎activity, 爬 ⾍技术nutch,lucene,webService CXF、Tomcat集群和热备 、MySQL读写分离 4. 描述如下:...

    网络架构师148讲视频课程

    │ 第09节:搭建基础的开发环境.avi │ 第10节:Spring+Mybatis实现DAO.avi │ 第11节:Mybatis的分页实现.avi │ 第12节:Service的实现以及模块化.avi │ 第13节:Spring MVC实现Web层开发.avi │ 第14节:新增和...

Global site tag (gtag.js) - Google Analytics