ฉันได้เห็นบทความมากมายเกี่ยวกับการรวมกันของฤดูใบไม้ผลิและไฮเบอร์เนตบนอินเทอร์เน็ต แต่เนื่องจากบทความเหล่านั้นเขียนไว้ก่อนหน้านี้หลายคนจึงเป็นรุ่นเก่าเช่น Spring 3 และ Hibernate 4 ดังนั้นฉันจะใช้เวอร์ชันที่อัปเดตที่นี่เพื่อแสดงให้เห็น
เพิ่มการพึ่งพาโครงการ
ก่อนอื่นเราต้องใช้โครงการ Java Web ซึ่งดีที่สุดในการใช้เครื่องมือ Maven หรือ Gradle Build เพื่ออำนวยความสะดวกในการพึ่งพาซอฟต์แวร์ของเรา ฉันใช้เครื่องมือบิลด์ Gradle ที่นี่สคริปต์สร้างมีดังนี้ ตราบใดที่เราแนะนำแพคเกจสองแพ็คเกจของ Spring-WebMVC และ Spring-orm การพึ่งพาสปริงอื่น ๆ จะได้รับการแก้ไขโดยอัตโนมัติโดยเครื่องมือสร้าง จากนั้นคุณต้องแนะนำการพึ่งพาเช่นแหล่งข้อมูล, ไฮเบอร์เนต, JSTL ฯลฯ สคริปต์กำหนดงานเพื่อสร้างไฟล์ POM ที่เกี่ยวข้องเพื่อใช้งานง่ายโดยเครื่องมือ Maven
กลุ่ม 'yitian.learn'version' 1.0-snapshot'apply ปลั๊กอิน: 'ปลั๊กอิน java'apply:' ปลั๊กอิน War'apply: 'maven'apply จาก:' https://raw.github.com/akhikhl/gretty/master/pluginsripts url "http://maven.aliyun.com/nexus/content/groups/public/"} jcenter ()} ext {Springversion = '4.3.6.Release' AspectJverison = '1.8.10' 'org.springframework', ชื่อ: 'Spring-Webmvc', เวอร์ชัน: Springversion Compile Group: 'org.springframework', ชื่อ: 'Spring-orm', Version: Springversion Compile Group: 'org.glassfish.web', ชื่อ: เวอร์ชัน: '1.16.12' กลุ่มคอมไพล์: 'org.hibernate', ชื่อ: 'hibernate-core', เวอร์ชัน: '5.2.6.final' กลุ่มคอมไพล์: 'mysql', ชื่อ: 'mysql-connector-java', เวอร์ชัน: '5.1.40 '2.1.1' กลุ่มคอมไพล์: 'org.aspectj', ชื่อ: 'appectjweaver', เวอร์ชัน: Appectjverison} งาน writenewpom {dolast {pom {} .writeto ("$ projectdir/pom.xml")}}}}}}}}กำหนดค่า web.xml
จากนั้นเปิดไฟล์ web-inf/web.xml และเพิ่มเนื้อหาต่อไปนี้
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http://ww.w3. XSI: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" <param-value> /web-inf/applicationContext.xml </param-value> </context-param> <servlet> <servlet-name> dispatcher </servlet-name> <sync-supported> True </async-supported> </servlet> <servlet-mapping> <servlet-name> dispatcher </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <sisterer> </Listener> </eb-app>
กำหนดค่าสปริง
ควรมีไฟล์การกำหนดค่าสปริงสองไฟล์ /web-inf/applicationcontext.xml และ /web-inf/dispatcher-servlet.xml อดีตคือไฟล์การกำหนดค่ารูทซึ่งใช้ในการกำหนดค่าส่วนประกอบแบ็คเอนด์และส่วนประกอบทั่วโลกเช่นฐานข้อมูลและหลังเป็นไฟล์กำหนดค่า MVC ซึ่งใช้ในการกำหนดค่า MVC และส่วนประกอบที่เกี่ยวข้องกับเว็บ
จากนั้นใน /web-inf/applicationContext.xml เรากำหนดค่าส่วนประกอบที่รวมไฮเบอร์เนตและสปริง เราจำเป็นต้องกำหนดค่าแหล่งข้อมูล, HibernatesessionFactory, ตัวจัดการธุรกรรม Hibernate, จุดเชื่อมต่อธุรกรรม, เทมเพลต Hibernate และถั่วอื่น ๆ จากนั้นใช้เทมเพลตไฮเบอร์เนตเมื่อจัดการข้อมูลเพื่อให้ได้ฟังก์ชั่นการจัดการธุรกรรมที่ควบคุมโดยฤดูใบไม้ผลิ
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: บริบท = "http:/ XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <บริบท: Annotation-config/> <! name = "driverclassName" value = "com.mysql.jdbc.driver"/> <property name = "url" value = "jdbc: mysql: // localhost: 3306/test"/> <property name = "username" value = "root"/> id = "SessionFactory"> <property name = "dataSource" ref = "dataSource"/> <property name = "hibernateProperties"> <props> <prop key = "hibernate.format_sql"> true </prop> <prop.hibernate.show_sql key = "hibernate.hbm2ddl.auto"> สร้าง </prop> </props> </คุณสมบัติ> <property name = "Packagestoscan" value = "yitian.learn.entity"/> </ebean> <! <!-ตั้งค่าตัวจัดการธุรกรรม Hibernate-> <bean id = "transactionManager"> <property name = "sessionFactory" ref = "sessionFactory"/> </ebean> <!-ตั้งค่าตัวจัดการธุรกรรมไฮเบอร์เนต-> <bean id = "transactionManager"> <!-ตั้งค่าการจัดการธุรกรรม-> <tx: คำแนะนำ id = "txAdvice" ธุรกรรม-manager = "transactionManager"> <tx: แอตทริบิวต์> <tx: method name = "ค้นหา*" read-only = "true"/> <tx: method name = "*"/> </tx: Attributes> </tx id = "userdaopointcut" expression = "การดำเนินการ (*yitian.learn.dao.*.*(.. ))"/> <aop: คำแนะนำที่ปรึกษา ref = "txadvice" pointcut-ref = "userdaopointcut"/> </aop: config>
จากนั้นกำหนดค่าส่วนประกอบของ Spring Web MVC เพิ่มการกำหนดค่าต่อไปนี้ใน dispatcher-servlet.xml ที่นี่เราเพิ่ม JSP View Parser และ Type Converter หากคุณไม่จำเป็นต้องแปลงประเภทที่กำหนดเองคุณสามารถลบแฟรกเมนต์ที่เกี่ยวข้องได้
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: บริบท = "http://www.springframework.org/schema/context http://www.springframework.org/schema/beans/spring-beans.XSD http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <mvc: view-resolvers> <mvc: jsp prefix ="/web-infix view-class = "org.springframework.web.servlet.view.jstlview"/> </mvc: views-resolvers> <mvc: default-servlet-handler/> <mvc: annotation-driven conversion-service = "ConversionService"/> id = "ConversionService"> <property name = "ตัวแปลง"> <et> <bean/> </et> </porement> </ebean> </ebeans>
ณ จุดนี้การรวมกันระหว่างไฮเบอร์เนตและสปริงได้รับการกำหนดค่าอย่างสมบูรณ์ ในที่สุดฉันก็เขียนตัวอย่างเล็ก ๆ และวางไว้ใน GitHub นักเรียนที่สนใจสามารถดูได้
สรุป
ข้างต้นเป็นคำอธิบายโดยละเอียดทั้งหมดของการกำหนดค่าการรวมของ Spring Web MVC และ Hibernate ในบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!