【spring】spring+springmvc+springdatajpa整合

开发环境:

  • IntelliJ IDEA 15.0.4
  • JDK1.6_43

项目整体如下:

【spring】spring+springmvc+springdatajpa整合_第1张图片
Paste_Image.png

maven 配置文件如下



    4.0.0

    com.marry.fquery
    linyi
    1.0

    
        UTF-8
        UTF-8
        4.2.5.RELEASE
        4.3.11.Final
        4.1.4
    


    
        
            javax.servlet
            servlet-api
            3.0-alpha-1
            provided
        
        
        
            org.aspectj
            aspectjweaver
            1.7.1
        
        
        
            junit
            junit
            4.11
            
            test
        
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            org.springframework
            spring-orm
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        

        
        
            org.hibernate
            hibernate-core
            ${hibernate.version}
        
        
            org.hibernate
            hibernate-entitymanager
            ${hibernate.version}
        
        
            org.hibernate
            hibernate-ehcache
            ${hibernate.version}
        

        
            org.springframework.data
            spring-data-jpa
            1.7.1.RELEASE
        

        
        
            com.alibaba
            druid
            1.0.29
        
        
        
            com.alibaba
            fastjson
            1.2.27
        

        
        
            log4j
            log4j
            1.2.17
        
        
            org.slf4j
            slf4j-api
            1.7.19
        
        
            org.slf4j
            slf4j-log4j12
            1.7.19
        
        
        
            ojdbc
            ojdbc14
            10.2.0.4.0
        
        
            org.apache.commons
            commons-lang3
            3.4
        

        
            com.google.guava
            guava
            18.0
        

        
        
            com.querydsl
            querydsl-jpa
            ${querydsl.version}
        
        
            com.querydsl
            querydsl-apt
            ${querydsl.version}
        

    
    
        
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.6
                    1.6
                
            
        
        FQuery
    



这里有童鞋会发现为啥还添加了hibernate的jar包啊,其实这里不是用的hibernate而是用的hibernate的相关实现,贴个图大家就看懂了 由于不同的orm框架之间有区别,spring Data Jpa可以方便的在不同的orm中间进行切换

【spring】spring+springmvc+springdatajpa整合_第2张图片
Paste_Image.png

添加spring上下文配置文件applicationContext.xml





    
    
        
    
    
    

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        

        
            
                true
                true
            
        
    
    

    
        
    

    
    
        
    

    
    

    
    

web.xml配置




    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
        true
    
    
        dispatcherServlet
        *.do
    
    
    
        dispatcherServlet
        *.html
    

    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        true
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    

    
    
        Spring OpenEntityManagerInViewFilter
        org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
        
        
            entityManagerFactoryBean
            entityManagerFactory
        
    
    
        Spring OpenEntityManagerInViewFilter
        /*
    

    

    
        DruidWebStatFilter
        com.alibaba.druid.support.http.WebStatFilter
        
            exclusions
            *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
        
    
    
        DruidWebStatFilter
        /*
    
    
    
        DruidWebStatFilter
        com.alibaba.druid.support.http.StatViewServlet
        
            
            resetEnable
            true
        
        
            
            loginUsername
            druid
        
        
            
            loginPassword
            druid
        
    
    
        DruidWebStatFilter
        /druid/*
    


数据库配置文件 jdbc.properties

url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
driverClassName: oracle.jdbc.driver.OracleDriver
jdbc.username: pubr
password: 123
filters: stat
maxActive: 50
initialSize: 1
maxWait: 60000
minIdle: 10
maxIdle: 15
timeBetweenEvictionRunsMillis: 6000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
maxOpenPreparedStatements: 20
removeAbandoned: true
removeAbandonedTimeout: 1800
logAbandoned: true

hibernate.dialect=org.hibernate.dialect.OracleDialect

springmvc的配置文件 spring-mvc.xml





    
    
        
            
            
        
    
    
        
        
            
                text/plain;charset=UTF-8
            
        
    

    
        
            
                text/html;charset=UTF-8
                application/json;charset=UTF-8
                application/x-www-form-urlencoded;charset=UTF-8
            
        
        
            
                
                    
                        DisableCircularReferenceDetect
                    
                
                
            
        
    
    
    

    
    


    
    
        
        
    

BaseReposity.class

@NoRepositoryBean
public interface BaseReposity extends JpaRepository,JpaSpecificationExecutor{
}

由于JpaRepository已经有Repository属性了 所以我们自己为了不在所有的Jpa类中都写重复的代码所建的接口 添加个@NoRepositoryBean声明

BuildingJpa.class

public interface BuildingJpa extends BaseReposity {
}

BuildingServiceTest.class

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class BuildingServiceTest {

    @Resource
    BuildingJpa buildingJpa;

    @Test
    public void testGetBuildingById() throws Exception {
        System.out.println(" = " );
        Building building=buildingJpa.findOne(111L);


    }
}

注意 这里需要使用 findOne() 方法 不要使用 getOne() 否则你会发现得到的所有的对象均为空

你可能感兴趣的:(【spring】spring+springmvc+springdatajpa整合)