Я видел много статей об интеграции Spring и Hibernate в Интернете, но поскольку эти статьи были написаны ранее, многие из них были более старыми версиями, такими как Spring 3 и Hibernate 4. Поэтому я использую здесь обновленную версию, чтобы проиллюстрировать ее.
Добавить проектные зависимости
Прежде всего, нам нужен веб -проект Java, который лучше всего использовать инструменты Maven или Gradle Build для облегчения наших программных зависимостей. Я использую здесь инструмент Gradle Build, сценарий сборки выглядит следующим образом. Пока мы представляем два пакета Spring-Webmvc и Spring-Orm, другие зависимости от пружины будут автоматически решены инструментом сборки. Затем вам также необходимо ввести такие зависимости, как источники данных, Hibernate, JSTL и т. Д. Сценарий определяет задачу для создания соответствующего файла POM для удобного использования инструментами Maven.
Группа 'yitian.learn'Version' 1.0-SnapShot'Apply Plugin: 'Java'Apply Plugin:' War'Apply Plugin: 'maven'Apply от:' https://raw.github.com/akhikhl/gretty/master/pluginscripts/gretty.plugin'sourcpatibibite = 1.8RespoSpatibibite = 1.8ReSistroipibite = 1.8ReSiroseSporibibite = 1.8RespoSpatibilitiby = 1. URL "http://maven.aliyun.com/nexus/content/groups/public/"} jcenter ()} ext {SpringVersion = '4.3.6.Release' AspectJverison = '1.8.10'} Зависимости {TestCompile Group: 'Junit', имя: 'Junit', версия: '4.12' Группа: 'junit', имя: 'junit', версия: '4.12' compile group: 'junit', namit: 'junit', версия: '4.12 'org.springframework', name: 'Spring-webmvc', версия: Springversion Compile Group: 'org.springframework', имя: 'Spring-orm', версия: SpringVersion Compile Group: 'org.glassfish.web', имя: 'JSTL-Impl', версия: '1.2' Group: 'org.procemlom '1.16.12' Compility Group: 'org.hibernate', имя: «hibernate-core», версия: «5.2.6.final 'Compile Group:' MySQL ', имя:' MySQL-Connector-Java ', версия:' 5.1.40 'Compility 'org.aspectj', name: 'AspectJweaver', версия: AspectJverison} Задача writenewpom {dolast {pom {} .writeto ("$ projectdir/pom.xml")}}}}}}}}}}}}}}}}}}}}}}}Настройка web.xml
Затем откройте файл web-inf/web.xml и добавьте следующий контент.
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance "/www.w3. xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" версии = "3.1"> <contecept-param> <param-name> contecept> contecept> contecept> namecloc <param-value>/web-inf/applicationcontext.xml </param-value> </context-param> <servlet> <servlet-name> Dispatcher </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherserveler </servlet-class> <load-n-satartup> 1 </optart-on-n-start-on-one-n-n-n-start-on-n-n-n-n-start. <Sync-подержанный> true </async-supported> </servlet> <servlet-mapping> <servlet-name> диспетчер </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <lasder> <lisher-class> org.spramework> </слушать> </web-app>
Настройка пружины
Должно быть два файла конфигурации пружины /web-inf/applicationcontext.xml и /web-inf/dispatcher-servlet.xml. Первый представляет собой файл конфигурации корня, который используется для настройки первых и глобальных компонентов, таких как базы данных, а последний-это файл конфигурации MVC, который используется для настройки MVC и связанных с веб-компонентами.
Затем в /Web-inf/ApplicationContext.xml мы настраиваем компоненты, которые интегрируют Hibernate и Spring. Нам необходимо настроить источник данных, HibernatesessionFactory, диспетчер транзакций Hibernate, точку подключения транзакции, шаблон спящих спящих и других бобов, а затем использовать шаблон Hibernate при манипулировании данными для получения функции управления транзакциями, контролируемой пружиной.
<? 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: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: context = "http://wwww.springframe.orschema. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.spramework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <xtrenew: annotation-config/> <!-Источник данных-> <Bass Id =" DataSource "displose-method ="> ">". value = "com.mysql.jdbc.driver"/> <name = "url" value = "jdbc: mysql: // localhost: 3306/test"/> <name = "username" value = "root"/> <name = "пароль" = "12345678"/> </bean> <! name = "dataSource" ref = "dataSource"/> <name = "hibernateProperties"> <props> <prop key = "hibernate.format_sql"> true </prop> <prop key = "hibernate.show_sql"> true </prop> <prop = "hibernate.show_ssql" key = "hibernate.hbm2ddl.auto"> create </prop> </props> </property> <name = "packageStoscan" value = "yitian.learn.entity"/> </bean> <!-Set hibernate tempate-> <bean id = "hibernateTemplate"> <property name = "SessionFactore"/"/" SessionFactore "/"/"/"/"SessionFactory"/"/"/"SessionFactory"/"/" SessionFactory "? <!-Установить диспетчер транзакций Hibernate-> <bean id = "transactionManager"> <name = "sessionFactory" ref = "sessionFactory"/> </bean> <!-Установите диспетчер транзакций Hibernate-> <Bean id = "TransactionManager"> <propation = "SessionFactory" ref = "SessionFactory"/> </bean> <!-data Access-> <>> <! <!-Установите управление транзакциями-> <tx: Advion id = "txAdvice" Transaction-manager = "transactionManager"> <tx: атрибуты> <tx: method name = "find*" readnoly = "true"/> <tx: имя метода = "*"/> </tx: атрибуты> </tx: консультирование> <!-set andraction ganverment с aop-> <aop: aTop: aToP: aTop: aTop: aP: aop: aToP: aTop: aTputes> </tx: count> <! id = "userdaopointcut" Expression = "exeplion (*yitian.learn.dao.*.*(..))"/> <aop: Advisor rese-ref = "txadvice" pointcut-ref = "userdaopointcut"/> </aop: config> </beans>
Затем настройте компоненты Spring Web MVC. Добавьте следующую конфигурацию в Dispatcher-servlet.xml. Здесь мы добавляем анализатор просмотра JSP и конвертер типа. Если вам не нужно преобразовать пользовательский тип, вы можете удалить соответствующий фрагмент.
<? 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: mvc = "http://www.springframework.org/schema/mvc" xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://wwww.spramemema. http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <mvc: view-Resolvers> <mvc: jsp prefix ="/web-inf/jsp/".". view-class = "org.springframework.web.servlet.view.jstlview"/> </mvc: view-resolvers> <mvc: по умолчанию-servlet-handler/> <MVC: Annotation Conversion-service = "Conversionser"/> <context: component-scan base-package = "yitian.learn.> <cervionser"/> <context: component-scan base-package = "yitian. <имя свойства = "преобразователи"> <Set> <bean/> </set> </property> </bean> </beans>
На этом этапе интеграция между Hibernate и Spring была полностью настроена. Наконец, я написал небольшой пример и поместил его на GitHub. Заинтересованные студенты могут посмотреть.
Суммировать
Выше приведено подробное объяснение конфигурации интеграции Spring Web MVC и Hibernate в этой статье, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!