一、项目结构
二 、采用maven管理框架所使用到的架包 pom文件如下
<!-- 设置架包版本配置 -->
<properties>
<spring.version>4.2.6.RELEASE</spring.version>
</properties>
<!-- 依赖架包 -->
<dependencies>
<!-- spring 依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 使用SpringMVC需配置 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 关系型数据库整合时需配置 如hibernate jpa等 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</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-test</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-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- log4j 依赖 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- hibernate 依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.5.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.5.Final</version>
</dependency>
<!-- 数据源 依赖 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- json依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
<!-- servlet 运行时环境依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!-- 只在编译的classpath中加载和使用,打包的时候不会包含在目标包中。 -->
<scope>provided</scope>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
三、整合spring hibernate 配置的spring-hibernate.xml
db.properties 文件
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@100.100.70.31:1521:hcdb
jdbc.username=tyh
jdbc.password=1234
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.show_sql=true
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.1.xsd
">
<context:component-scan base-package="com.sxc.ssh.*"></context:component-scan>
<!-- 加载db配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源 datasource -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置sessionFactory,hibernate配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan" value="com.sxc.ssh.entity" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
</bean>
<!-- 创建hibernateTemplate 模板类 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事物管理器transcationManager -->
<bean id="tansactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--启动注解用注解来管理事务-->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
四、spring mvc配置 spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.1.xsd
">
<!-- 启动自动扫描该包下的所有bean -->
<context:component-scan base-package="com.sxc.ssh.*" />
<!-- 配置请求url返回json数据 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<!-- 定义视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
五、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"
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">
<!-- 加载所有资源配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</context-param>
<!-- 容器监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--servlet容器 -->
<servlet>
<servlet-name>ssh-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 默认/WEB-INF/[servlet名字]-servlet.xml加载上下文,
如果配置了contextConfigLocation参数,
将使用classpath:/lei-dispatcher-servlet.xml加载上下文
-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/sepring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!-- 拦截匹配的请求,这里所有请求采用名字为ssh-servlet的DispatcherServlet处理 -->
<servlet-name>ssh-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<!-- 配置编码方式过滤器,注意一点:要配置在所有过滤器的前面 -->
<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>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
六、测试代码
(1)实体类
@Entity
@Table(name="MES_PLANT")
public class MesPlant implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="M_PLANT_ID")
private String mPlantId;
@Column(name="CREATE_DATE")
private Date createDate;
@Column(name="CREATE_USER")
private String createUser;
@Column(name="CREATE_USER_NAME")
private String createUserName;
@Column(name="LAST_DATE")
private Date lastDate;
@Column(name="LAST_USER")
private String lastUser;
@Column(name="LAST_USER_NAME")
private String lastUserName;
@Column(name="M_ORG_ID")
private String mOrgId;
private String plant;
@Column(name="PLANT_NAME")
private String plantName;
@Column(name="\"SORT\"")
private BigDecimal sort;
public MesPlant() {
}
public String getMPlantId() {
return this.mPlantId;
}
public void setMPlantId(String mPlantId) {
this.mPlantId = mPlantId;
}
public Date getCreateDate() {
return this.createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getCreateUser() {
return this.createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
public String getCreateUserName() {
return this.createUserName;
}
public void setCreateUserName(String createUserName) {
this.createUserName = createUserName;
}
public Date getLastDate() {
return this.lastDate;
}
public void setLastDate(Date lastDate) {
this.lastDate = lastDate;
}
public String getLastUser() {
return this.lastUser;
}
public void setLastUser(String lastUser) {
this.lastUser = lastUser;
}
public String getLastUserName() {
return this.lastUserName;
}
public void setLastUserName(String lastUserName) {
this.lastUserName = lastUserName;
}
public String getMOrgId() {
return this.mOrgId;
}
public void setMOrgId(String mOrgId) {
this.mOrgId = mOrgId;
}
public String getPlant() {
return this.plant;
}
public void setPlant(String plant) {
this.plant = plant;
}
public String getPlantName() {
return this.plantName;
}
public void setPlantName(String plantName) {
this.plantName = plantName;
}
public BigDecimal getSort() {
return this.sort;
}
public void setSort(BigDecimal sort) {
this.sort = sort;
}
}
(2)dao层
@Repository
public class PlantDaoImpl implements PlantDao {
@Autowired
private HibernateTemplate hibernateTemplate;
public List<MesPlant> getAll() {
return (List<MesPlant>) hibernateTemplate.find("from MesPlant");
}
public static void main(String[] args) {
ApplicationContext app =
new ClassPathXmlApplicationContext("classpath:spring-hibernate.xml");
PlantDao pd = (PlantDao) app.getBean("plantDao");
List<MesPlant> lsit = pd.getAll();
for (MesPlant mesPlant : lsit) {
System.out.println(mesPlant.getPlantName());
}
}
}
(3)service层
package com.sxc.ssh.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sxc.ssh.dao.PlantDao;
import com.sxc.ssh.entity.MesPlant;
import com.sxc.ssh.service.PlantService;
@Service
public class PlantServiceImpl implements PlantService {
@Autowired
private PlantDao plantDao;
public List<MesPlant> getAll() {
return plantDao.getAll();
}
}
(4)controller层
@RestController
@RequestMapping(path="plantCtrl")
public class PlantCtrl {
@Autowired
private PlantService plantService;
@RequestMapping(path="getAll",method=RequestMethod.GET)
public List<MesPlant> getAll(){
return plantService.getAll();
}
@RequestMapping(path="getPlant",method=RequestMethod.GET)
public ModelAndView getPlant(){
ModelAndView md = new ModelAndView();
md.addObject("list", plantService.getAll());
md.setViewName("index");
return md;
}
}
至此spring spring mvc hibernate整合完成