首页 > 代码库 > jpa+springmvc+springdata(一)
jpa+springmvc+springdata(一)
学习尚硅谷笔记:
首先配置application.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:tx="http://www.springframework.org/schema/tx" 6 xmlns:jpa="http://www.springframework.org/schema/data/jpa" 7 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd 9 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd10 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">11 12 <!-- 配置自动扫描的包 -->13 <context:component-scan base-package="com.atguigu.sssp">14 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>15 <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>16 </context:component-scan>17 18 <!-- 配置数据源 -->19 <context:property-placeholder location="classpath:db.properties"/>20 21 <bean id="dataSource"22 class="com.mchange.v2.c3p0.ComboPooledDataSource">23 <property name="user" value="${jdbc.user}"></property> 24 <property name="password" value="${jdbc.password}"></property> 25 <property name="driverClass" value="${jdbc.driverClass}"></property> 26 <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> 27 28 <!-- 配置其他属性 -->29 </bean>30 31 <!-- 配置 JPA 的 EntityManagerFactory -->32 <bean id="entityManagerFactory"33 class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">34 <property name="dataSource" ref="dataSource"></property>35 <property name="jpaVendorAdapter">36 <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>37 </property> 38 <property name="packagesToScan" value="com.atguigu.sssp"></property>39 <property name="jpaProperties">40 <props>41 <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>42 <prop key="hibernate.hbm2ddl.auto">update</prop>43 <prop key="hibernate.show_sql">true</prop>44 <prop key="hibernate.format_sql">true</prop>45 <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>46 47 <prop key="hibernate.cache.use_second_level_cache">true</prop>48 <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>49 <prop key="hibernate.cache.use_query_cache">true</prop>50 </props>51 </property>52 <property name="sharedCacheMode" value="ENABLE_SELECTIVE"></property>53 </bean>54 55 <!-- 配置事务 -->56 <bean id="transactionManager"57 class="org.springframework.orm.jpa.JpaTransactionManager">58 <property name="entityManagerFactory" ref="entityManagerFactory"></property> 59 </bean>60 61 <!-- 配置支持基于注解的事务 -->62 <tx:annotation-driven transaction-manager="transactionManager"/>63 64 <!-- 配置 SpringData -->65 <jpa:repositories base-package="com.atguigu.sssp"66 entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>67 68 </beans>
其中:db.properties
jdbc.user=rootjdbc.password=1111jdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql://localhost:3306/springdata
还有二级缓存的配置:ehcache.xml
1 <ehcache> 2 3 <!-- Sets the path to the directory where cache .data files are created. 4 5 If the path is a Java System Property it is replaced by 6 its value in the running VM. 7 8 The following properties are translated: 9 user.home - User‘s home directory10 user.dir - User‘s current working directory11 java.io.tmpdir - Default temp file path -->12 <diskStore path="java.io.tmpdir"/>13 14 15 <!--Default Cache configuration. These will applied to caches programmatically created through16 the CacheManager.17 18 The following attributes are required for defaultCache:19 20 maxInMemory - Sets the maximum number of objects that will be created in memory21 eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the element22 is never expired.23 timeToIdleSeconds - Sets the time to idle for an element before it expires. Is only used24 if the element is not eternal. Idle time is now - last accessed time25 timeToLiveSeconds - Sets the time to live for an element before it expires. Is only used26 if the element is not eternal. TTL is now - creation time27 overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache28 has reached the maxInMemory limit.29 30 -->31 <defaultCache32 maxElementsInMemory="10000"33 eternal="false"34 timeToIdleSeconds="120"35 timeToLiveSeconds="120"36 overflowToDisk="true"37 />38 39 <!--Predefined caches. Add your cache configuration settings here.40 If you do not have a configuration for your cache a WARNING will be issued when the41 CacheManager starts42 43 The following attributes are required for defaultCache:44 45 name - Sets the name of the cache. This is used to identify the cache. It must be unique.46 maxInMemory - Sets the maximum number of objects that will be created in memory47 eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the element48 is never expired.49 timeToIdleSeconds - Sets the time to idle for an element before it expires. Is only used50 if the element is not eternal. Idle time is now - last accessed time51 timeToLiveSeconds - Sets the time to live for an element before it expires. Is only used52 if the element is not eternal. TTL is now - creation time53 overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache54 has reached the maxInMemory limit.55 56 -->57 58 <!-- Sample cache named sampleCache159 This cache contains a maximum in memory of 10000 elements, and will expire60 an element if it is idle for more than 5 minutes and lives for more than61 10 minutes.62 63 If there are more than 10000 elements it will overflow to the64 disk cache, which in this configuration will go to wherever java.io.tmp is65 defined on your system. On a standard Linux system this will be /tmp"66 -->67 <cache name="sampleCache1"68 maxElementsInMemory="10000"69 eternal="false"70 timeToIdleSeconds="300"71 timeToLiveSeconds="600"72 overflowToDisk="true"73 />74 75 <!-- Sample cache named sampleCache276 This cache contains 1000 elements. Elements will always be held in memory.77 They are not expired. -->78 <cache name="sampleCache2"79 maxElementsInMemory="1000"80 eternal="true"81 timeToIdleSeconds="0"82 timeToLiveSeconds="0"83 overflowToDisk="false"84 /> -->85 86 <!-- Place configuration for your caches following -->87 88 </ehcache>
springmvc的配置:springDispatcherServlet-servlet.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mvc="http://www.springframework.org/schema/mvc" 6 xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 7 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 9 10 <!-- 配置自动扫描的包 -->11 <context:component-scan base-package="com.atguigu.sssp" use-default-filters="false">12 <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>13 <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>14 </context:component-scan>15 16 <!-- 配置视图解析器 -->17 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">18 <property name="prefix" value="/WEB-INF/views/"></property>19 <property name="suffix" value=".jsp"></property>20 </bean>21 22 <mvc:default-servlet-handler/>23 <mvc:annotation-driven></mvc:annotation-driven>24 25 </beans>
web.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <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"> 3 4 <!-- 配置启动 IOC 容器的 Listener --> 5 <context-param> 6 <param-name>contextConfigLocation</param-name> 7 <param-value>classpath:applicationContext.xml</param-value> 8 </context-param> 9 10 <listener>11 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>12 </listener>13 14 <!-- 配置字符编码过滤器 -->15 <!-- 字符编码过滤器必须配置在所有过滤器的最前面! -->16 <filter>17 <filter-name>CharacterEncodingFilter</filter-name>18 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>19 <init-param>20 <param-name>encoding</param-name>21 <param-value>UTF-8</param-value>22 </init-param>23 </filter>24 25 <filter-mapping>26 <filter-name>CharacterEncodingFilter</filter-name>27 <url-pattern>/*</url-pattern>28 </filter-mapping>29 30 <!-- 配置可以把 POST 请求转为 PUT、DELETE 请求的 Filter -->31 <filter>32 <filter-name>HiddenHttpMethodFilter</filter-name>33 <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>34 </filter>35 36 <filter-mapping>37 <filter-name>HiddenHttpMethodFilter</filter-name>38 <url-pattern>/*</url-pattern>39 </filter-mapping>40 41 <!-- 配置 OpenEntityManagerInViewFilter. 可以解决懒加载异常的问题 -->42 <filter>43 <filter-name>OpenEntityManagerInViewFilter</filter-name>44 <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>45 </filter>46 47 <filter-mapping>48 <filter-name>OpenEntityManagerInViewFilter</filter-name>49 <url-pattern>/*</url-pattern>50 </filter-mapping>51 52 <!-- 配置 SpringMVC 的 DispatcherServlet -->53 <servlet>54 <servlet-name>springDispatcherServlet</servlet-name>55 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>56 <load-on-startup>1</load-on-startup>57 </servlet>58 59 <servlet-mapping>60 <servlet-name>springDispatcherServlet</servlet-name>61 <url-pattern>/</url-pattern>62 </servlet-mapping>63 64 </web-app>
jpa+springmvc+springdata(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。