1.build.gradle
group 'com.lyj'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'war'
sourceCompatibility = 1.8
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
maven { url "http://repo.maven.apache.org/maven2/" }
mavenCentral()
}
dependencies {
testCompile group : 'junit' , name: 'junit' , version: '4.12'
compile group : 'javax.servlet' , name: 'servlet-api' , version: '2.5'
compile group : 'org.springframework' , name: 'spring-webmvc' , version: '4.3.3.RELEASE'
compile group : 'org.springframework' , name: 'spring-orm' , version: '4.3.3.RELEASE'
compile group : 'org.springframework' , name: 'spring-aspects' , version: '4.3.3.RELEASE'
compile group : 'org.jboss.spec.javax.transaction' , name: 'jboss-transaction-api_1.2_spec' , version: '1.0.1.Final'
compile group : 'org.hibernate' , name: 'hibernate-entitymanager' , version: '5.2.2.Final'
compile group : 'org.hibernate' , name: 'hibernate-c3p0' , version: '5.2.2.Final'
compile group : 'org.hibernate' , name: 'hibernate-ehcache' , version: '5.2.2.Final'
compile group : 'mysql' , name: 'mysql-connector-java' , version: '5.1.39'
compile group : 'org.springframework.data' , name: 'spring-data-jpa' , version: '1.10.3.RELEASE'
}
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"
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:applicationContext.xml</param-value >
</context-param >
<listener >
<listener-class > org.springframework.web.context.ContextLoaderListener</listener-class >
</listener >
<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 >
<filter >
<filter-name > HiddenHttpMethodFilter</filter-name >
<filter-class > org.springframework.web.filter.HiddenHttpMethodFilter</filter-class >
</filter >
<filter-mapping >
<filter-name > HiddenHttpMethodFilter</filter-name >
<url-pattern > /*</url-pattern >
</filter-mapping >
<filter >
<filter-name > OpenEntityManagerInViewFilter</filter-name >
<filter-class > org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class >
</filter >
<filter-mapping >
<filter-name > OpenEntityManagerInViewFilter</filter-name >
<url-pattern > /*</url-pattern >
</filter-mapping >
<servlet >
<servlet-name > springDispatcherServlet</servlet-name >
<servlet-class > org.springframework.web.servlet.DispatcherServlet</servlet-class >
<load-on-startup > 1</load-on-startup >
</servlet >
<servlet-mapping >
<servlet-name > springDispatcherServlet</servlet-name >
<url-pattern > /</url-pattern >
</servlet-mapping >
</web-app >
3.springDispatcherServlet-servlet.xml配置springMVC解析器
<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" >
<context:component-scan base-package ="com.lyj" use-default-filters ="false" >
<context:include-filter type ="annotation" expression ="org.springframework.stereotype.Controller" />
<context:include-filter type ="annotation" expression ="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan >
<bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name ="prefix" value ="/WEB-INF/views/" > </property >
<property name ="suffix" value =".jsp" > </property >
</bean >
<mvc:default-servlet-handler />
<mvc:annotation-driven > </mvc:annotation-driven >
</beans >
4.applicationContext.xml 配置spring容器
<?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:tx ="http://www.springframework.org/schema/tx"
xmlns:jpa ="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd" >
<context:component-scan base-package ="com.lyj" >
<context:exclude-filter type ="annotation"
expression ="org.springframework.stereotype.Controller" />
<context:exclude-filter type ="annotation"
expression ="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan >
<context:property-placeholder location ="classpath:db.properties" />
<bean id ="dataSource" class ="com.mchange.v2.c3p0.ComboPooledDataSource" >
<property name ="user" value ="${jdbc.user}" > </property >
<property name ="password" value ="${jdbc.password}" > </property >
<property name ="driverClass" value ="${jdbc.driverClass}" > </property >
<property name ="jdbcUrl" value ="${jdbc.jdbcUrl}" > </property >
<property name ="initialPoolSize" value ="${jdbc.initPoolSize}" > </property >
<property name ="maxPoolSize" value ="${jdbc.maxPoolSize}" > </property >
</bean >
<bean id ="entityManagerFactory"
class ="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
<property name ="dataSource" ref ="dataSource" > </property >
<property name ="jpaVendorAdapter" >
<bean class ="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" > </bean >
</property >
<property name ="packagesToScan" value ="com.lyj" > </property >
<property name ="jpaProperties" >
<props >
<prop key ="hibernate.ejb.naming_strategy" > org.hibernate.cfg.ImprovedNamingStrategy</prop >
<prop key ="hibernate.hbm2ddl.auto" > update</prop >
<prop key ="hibernate.show_sql" > true</prop >
<prop key ="hibernate.format_sql" > true</prop >
<prop key ="hibernate.dialect" > org.hibernate.dialect.MySQL5InnoDBDialect</prop >
<prop key ="hibernate.cache.use_second_level_cache" > true</prop >
<prop key ="hibernate.cache.region.factory_class" > org.hibernate.cache.ehcache.EhCacheRegionFactory
</prop >
<prop key ="hibernate.cache.use_query_cache" > true</prop >
</props >
</property >
<property name ="sharedCacheMode" value ="ENABLE_SELECTIVE" > </property >
</bean >
<bean id ="transactionManager" class ="org.springframework.orm.jpa.JpaTransactionManager" >
<property name ="entityManagerFactory" ref ="entityManagerFactory" > </property >
</bean >
<tx:annotation-driven transaction-manager ="transactionManager" />
<jpa:repositories base-package ="com.lyj"
entity-manager-factory-ref ="entityManagerFactory" > </jpa:repositories >
</beans >
5.db.properties
jdbc.user =root
jdbc.password =
jdbc.driverClass =com .mysql .jdbc .Driver
jdbc.jdbcUrl =jdbc:mysql:///sssptest?useUnicode=true&characterEncoding=UTF-8
jdbc.initPoolSize =5
jdbc.maxPoolSize =20
6.测试
(1).Entity实体类
package com.lyj.entity;
import javax.persistence.*;
/**
* Created by LYJ on 2016/9/27.
*/
@Table
@Entity
public class User {
@GeneratedValue
@Id
private Integer id;
@Column (name="USER_NAME" )
private String userName;
@Column (name="USER_PASSWORD" )
private String password;
@Column (name="USER_THIRD_ID" )
private String thirdId;
public String getThirdId () {
return thirdId;
}
public void setThirdId (String thirdId) {
this .thirdId = thirdId;
}
public Integer getId () {
return id;
}
public void setId (Integer id) {
this .id = id;
}
public String getUserName () {
return userName;
}
public void setUserName (String userName) {
this .userName = userName;
}
public String getPassword () {
return password;
}
public void setPassword (String password) {
this .password = password;
}
}
(2).repository JPA接口
package com.lyj.repository;
import com.lyj.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository <User ,Integer > {
public User findByUserName(String userName);
}
(3).service 为了方便次数省略接口世界写类,实际开发中需要面向接口编程
package com.lyj.service;
import com.lyj.entity.User;
import com.lyj.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Created by LYJ on 2016/9/27.
*/
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User findByUserName (String userName){
return userRepository.findByUserName(userName);
}
}
(4).handler控制器
package com.lyj.handler;
import com.lyj.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* Created by LYJ on 2016/9/29.
*/
public class UserHandler {
@Autowired
private UserService userService;
@RequestMapping ("userLogin" )
public String userLogin (@RequestParam ("username") String userName,
@RequestParam ("password") String password){
System.out.println(userName + " --------- userName --- UserHander.userLogin" );
System.out.println(password + " --------- password --- UserHander.userLogin" );
return "success" ;
}
}
7.备注(上述:省略了index.jsp和success.jsp) 附上项目结构图