最近,正在为公司搭建java部门的开发平台,记录下搭建的整个过程。
1. 环境介绍
1.1. JDK
jdk1.6.0_04
1.2. Web服务器
Tomcat6.0.29-windows-x86
1.3. 开发工具
Eclipse3.7
(Version:
Indigo Release Build id: 20110615-0604)
1.4. 使用的框架
后端:Mybatis(3.0.5) + Spring(3.0.5)MVC
前端:jQuery1.5.1
1.5. 数据库
MySQL(5.1)
2. 搭建过程
2.1. 项目结构
整个工程的编码是“utf-8”(包括里面所有的文件)。首先看一下整个项目的结构(里面涉及到公司名称的部分进行了处理):
接着,看看需要哪些jar包:
2.2. 配置文件
2.2.1 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">
<!-- 载入spring上下文 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!--
载入springMVC配置
如果<servlet-name>的名称为testMVC,则对应的xml文件则是testMVC-servlet.xml
-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Spring监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<!-- Spring 刷新Introspector防止内存泄露 -->
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- Spring过滤中文字符集 -->
<filter>
<filter-name>SetCharacterEncoding</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>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.2.2 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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
>
<!-- jdbc属性文件读入 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 数据库连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize" value="5"/>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="30"/>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="10"/>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="10"/>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5"/>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。
但由于预缓存的statements属于单个connection而不是整个连接池。所以设
置这个参数需要考虑到多方面的因素。如果maxStatements与maxStatementsPerConnection
均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements" value="0"/>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod" value="60"/>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts" value="30"/>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据
源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设
为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure" value="true"/>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection
提交的时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout" value="false"/>
</bean>
<!-- Mybatis's sqlSessionFactory config -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<bean name="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 启用事务 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="create*" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="copy*" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="update*" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="delete*" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="find*" read-only="true" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="list*" read-only="true" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="is*" read-only="true" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
<tx:method name="*" read-only="true" rollback-for="com.googosoft.framework.exception.CRUDException,Exception" />
</tx:attributes>
</tx:advice>
<!-- AOP代理设置 -->
<aop:config>
<aop:advisor pointcut="execution(* com.googosoft.framework.service.*.*(..))" advice-ref="txAdvice" />
</aop:config>
<!—- 自动扫描 XXXMapper.java -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.googosoft.framework.persistence" />
</bean>
<!-- 激活annotation功能 -->
<context:annotation-config />
<context:spring-configured/>
</beans>
其中,需要注意的2个地方是:
1. jdbc.properties文件的位置:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
这里指的是classpath的位置,如果还有文件夹,可以写成“XXX / jdbc.properties”
2. mybatis-config.xml文件的位置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
与jdbc需要注意的是一样的。
2.2.3 dispatcher-servlet.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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<!-- 扫描指定package下所有带有如@controller,@services,@resource,并把所注释的注册为Spring Beans -->
<context:component-scan base-package="com.googosoft">
<context:include-filter type="regex" expression="com.googosoft.framework.service.*"/>
<context:include-filter type="regex" expression="com.googosoft.framework.web.*"/>
</context:component-scan>
<!-- 只能用于springMVC,用于配置springMVC的注解驱动 -->
<mvc:annotation-driven />
<!-- Spring mvc视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
2.2.4 mybatis-config.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>
<!-- 运行时,参数信息 -->
<settings>
<!-- 使全局的映射器启用或禁用缓存。 -->
<setting name="cacheEnabled" value="true"/>
<!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
<setting name="aggressiveLazyLoading" value="true"/>
<!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。 -->
<setting name="multipleResultSetsEnabled" value="true"/>
<!-- 使用列标签代替列名。 -->
<setting name="useColumnLabel" value="true"/>
<!-- 允许JDBC支持生成的键。 -->
<setting name="useGeneratedKeys" value="false"/>
<!-- 指定MyBatis如何自动映射列到字段/属性。 -->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<!-- 配置默认的执行器。 -->
<setting name="defaultExecutorType" value="SIMPLE"/>
</settings>
<!-- java类别名 -->
<typeAliases>
<typeAlias alias="User" type="com.googosoft.framework.domain.system.User" />
<typeAlias alias="Department" type="com.googosoft.framework.domain.system.Department" />
</typeAliases>
<!-- SQL映射语句 -->
<mappers>
<mapper resource="mapper/system/UserMapper.xml"/>
<mapper resource="mapper/system/DepartmentMapper.xml"/>
</mappers>
</configuration>
2.2.5 jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/gframe?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
2.2.6 log4j.properties
log4j.rootLogger=INFO,stdout,docout
### print Mybatis logging
log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=-----------------------------------------------------------------------------------%nLevel\:[%p]%nTime\:[%d]%nClass\:[%l]%nMessage\:[%m]%n
log4j.appender.docout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.docout.File=log/log.html
log4j.appender.docout.Append=true
log4j.appender.docout.DatePattern=yyyy-MM-dd'.html'
log4j.appender.docout.layout=org.apache.log4j.HTMLLayout
- 大小: 28.1 KB
- 大小: 11.2 KB
分享到:
相关推荐
在本项目中,我们主要探讨的是如何将Spring3、MyBatis3以及Spring MVC三个核心框架进行整合,以便实现一个高效、灵活的企业级Web应用程序。这个整合过程涉及到多个层次的技术,包括依赖注入、数据访问、模型视图控制...
Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用...
标题 "mybatis3+spring+springMVC4整合jar包.rar" 描述的是一个整合了MyBatis 3、Spring 4 和 Spring MVC 4 的项目压缩包。这个压缩包通常用于快速搭建一个基于Java的Web开发环境,尤其是用于处理数据库操作和前端...
基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...
项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到...Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建
"maven+spring MVC+Mybatis+jetty+mysql" 的组合是常见的开发栈,它涵盖了项目管理、前端控制器、持久层操作、应用服务器以及数据库管理等多个层面。下面将详细介绍这些关键技术及其在实际应用中的作用。 1. Maven...
校社联社团管理系统(Spring MVC+Spring+Mybatis+Redis),用来记录进度,和保存文件,完成一定阶段都上传到小组仓库中。 校社联社团管理系统(Spring MVC+Spring+Mybatis+Redis),用来记录进度,和保存文件,完成...
基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili...
本项目是关于"activiti+spring+spring Mvc+mybatis+maven"的整合,旨在创建一个基于Activiti工作流引擎、Spring、Spring MVC、MyBatis以及Maven的开发环境。下面将详细介绍这些技术及其整合过程。 首先,`activiti`...
项目描述 学生成绩管理系统,有三...spring boot+spring mvc+mybatis+layui+jquery+thymeleaf http://localhost:8080/Sys/loginView 管理员账号 admin admin 老师登录 2020031920 111111 学生账号登录 20200319 111111
SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...
Struts2、MyBatis3和Spring3是Java Web开发中的三大框架,它们各自负责不同的职责,协同工作可以实现高效且灵活的企业级应用。Struts2作为MVC(Model-View-Controller)框架,主要负责控制流程;MyBatis3是一个持久...
Spring 3 + MyBatis 3 + Maven + Spring MVC + MySQL 配置例子,里面的数据库使用的是 MySQL 自带的例子数据库 World。如果你安装的时候没有安装例子,请确保你有办法弄到这个数据库。该数据库在新的MySQL安装包中...
总结来说,Spring4、MyBatis3和Spring MVC的整合应用,为企业级Java Web应用提供了强大的开发工具,它们各自发挥所长,共同构建出高效、可维护的软件架构。理解并熟练掌握这些技术,对于提升开发效率和产品质量具有...
- 首先,通过Maven的POM.xml文件定义项目依赖,引入Spring、Spring MVC和MyBatis的库。 - 接着,在Spring的配置文件(如:applicationContext.xml)中,配置Spring的核心组件,如Bean的定义、AOP的配置等。 - 使用...
本项目——"spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统"提供了一个完整的解决方案,涵盖了前端到后端的关键技术栈。下面我们将深入探讨这些技术及其在系统中的作用。 **Spring框架**:...
按标签检索电影 根据电影选择场次 根据场次选择座位 购票 查看个人订单 申请退票 发布评论、修改评论、删除评论 后台: 用户管理:增、删、改、查 电影管理:添加电影、修改和下架前台在映的电影 ...
总的来说,"spring+spring mvc+mybatis框架整合实现超市货物管理系统"是一个涵盖后端开发基础技能的项目,涉及了JavaEE的多个层面,从Web层的路由处理,到业务逻辑的实现,再到数据库操作,以及用户认证和分页显示等...
这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...