มาพูดคุยสั้น ๆ เกี่ยวกับโครงการ Maven Building SSM (การใช้ฐานข้อมูล Oracle นั้นลำบากกว่า MySQL เล็กน้อยดังนั้นมาพูดคุยกันที่นี่)
เมื่อสร้างโครงการเว็บ Maven สองโฟลเดอร์: Main/Java และ Main/Test มักจะหายไป
สารละลาย:
①: คลิกขวาที่โครงการและเลือกคุณสมบัติจากนั้นคลิกเส้นทางการสร้าง Java ภายใต้ไลบรารี, แก้ไขไลบรารีระบบ JRE และเลือกพื้นที่ทำงานเริ่มต้น JRE (แนะนำให้ใช้)
②: สร้างไดเรกทอรีด้วยตนเอง มุมมองสวิตช์ใช้มุมมอง Navigator และสร้างไดเรกทอรี Java โดยตรงในไดเรกทอรี SRC/Main
โครงสร้างไดเรกทอรีโครงการ:
ไฟล์การกำหนดค่าที่สำคัญ:
ไฟล์การกำหนดค่าโมเดลวัตถุ: pom.xml
ไฟล์การกำหนดค่าของ Spring: ApplicationContext.xml
ไฟล์กำหนดค่า MVC Spring: SpringMvc.xml
ไฟล์กำหนดค่าฐานข้อมูล: jdbc.properties
บันทึกการกำหนดค่า: log4j.properties
ไฟล์กำหนดค่า mybatis: mybatis-config.xml
ไฟล์การกำหนดค่าโปรแกรมเครือข่าย: web.xml
ก่อนกำหนด pom.xml
POM.XML ส่วนใหญ่จะอธิบายพิกัด Maven ของโครงการการพึ่งพาและแนะนำแพ็คเกจ JAR โดยอัตโนมัติ
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/MANCMMMMMMMMMMMMMMMMMMMMMMMMMMBM http://maven.apache.org/maven-v4_0_0.xsd "> <modersion> 4.0.0 </modelversion> <roupid> com.krry </groupId> <ArtIfactId> maven_ssm </artifactid> <url> http://maven.apache.org </url> <การพึ่งพา> <!-แนะนำ junit-> <การพึ่งพา> <GroupId> Junit </groupId> <RoupID> javax.servlet </groupId> <ratifactid> servlet-api </artifactid> <sersion> 3.0-alpha-1 </version> <pope> ให้ </cope> </predency> <! <scope> ให้ </cope> </perctency> <!-แนะนำการรวบรวมการพึ่งพาของ jsp-> <การพึ่งพา> <roupId> javax.servlet.jsp </groupId> <ratifactid> jsp-api </artifactid> <SpringMVC MyBatis-> <!-Spring และ SpringMVC <Sersion> 4.2.1.Release </เวอร์ชัน> </การพึ่งพา> <การพึ่งพา> <roupId> org.springframework </groupId> <ratifactid> Spring-Jdbc </artifactid> <version> 4.2.1.release </เวอร์ชัน> </การพึ่งพา <ArtIfactId> Spring-Webmvc </artifactId> <persion> 4.2.1.Release </เวอร์ชัน> </การพึ่งพา> <!-SpringMVC ต้องใช้แพ็คเกจการแปลง JSON-> <การพึ่งพา> <roupId> com.fasterxml.jackson.core </groupid> <Ependency> <sdeperency> com.fasterxml.jackson.core </groupId> <ratifactid> jackson-Annotations </artifactid> <persion> 2.5.4 </version> </sderctions> <perdency> <ratripid> com.fasterxml.jackson.core </Groupid> </permentency> <!-JSR303 การตรวจสอบพื้นหลังการตรวจสอบความถูกต้องของ Hibernate Hibernate-> <การพึ่งพา> <roupId> org.hibernate </groupId> <ratifactid> Hibernate-Validator </artifactid> <version> 5.1.1 <ArtIfactId> Commons-io </artifactId> <sersion> 2.4 </Serve> </การพึ่งพา> <การพึ่งพา> <roupId> Commons-FileUpload </GroupId> <ratifactId> Commons-FileUpload </artifactid> <ArtIfactId> Commons-Lang3 </artifactId> <sersion> 3.3.2 </Servent> </การพึ่งพาอาศัย> <!-CODEC ที่เกี่ยวข้องกับอัลกอริทึมการเข้ารหัส-> <การพึ่งพา> <roupId> Commons-Codec </GroupId> -> <!-ไดรเวอร์ฐานข้อมูล Oracle-> <การพึ่งพา> <roupId> com.oracle </groupId> <ratifactId> ojdbc6 </artifactid> <sersion> 12.1.0.2.0 </เวอร์ชัน> </การพึ่งพา> <! <ArtIfactId> MySQL-Connector-Java </artifactId> <persion> 5.0.8 </Scope> <Scope> รันไทม์ </scope> </การพึ่งพาอาศัย>-> <! </permentency> <predency> <roupId> com.cloudhopper.proxool </groupId> <ratifactid> proxool-cglib </artifactid> <cersion> 0.9.1 </version> </predency> <! <Sersion> 3.3.1 </Serve> </derctency> <การพึ่งพา> <roupId> org.mybatis </groupId> <ratifactid> mybatis-spring </artifactid> <version> 1.2.4 </เวอร์ชัน> </การพึ่งพา> <! <ArtIfactId> PageHelper </artifactid> <sersion> 4.2.1 </เวอร์ชัน> </การพึ่งพาอาศัย> </การพึ่งพา> <uild> <build> <plugins> <plugin> <ratifactid> maven-compiler-plugin </artifactid> <ArtIfactId> maven-war-plugin </artifactid> <sersion> 2.4 </เวอร์ชัน> <การกำหนดค่า> <version> 3.0 </เวอร์ชัน> </การกำหนดค่า> </ปลั๊กอิน> </plugins>
นี่คือคำถามเกี่ยวกับโครงการ Maven โดยใช้ pom.xml เพื่อนำเข้าแพ็คเกจ Oracle Driver:
เนื่องจากปัญหาการอนุญาตของ Oracle Maven ไม่ได้ให้ไดรเวอร์ Oracle JDBC ในการใช้ไดรเวอร์ Oracle JDBC ในโครงการ Maven จะต้องเพิ่มเข้ากับที่เก็บในท้องถิ่นด้วยตนเอง
หากมีการติดตั้งฐานข้อมูล Oracle บนคอมพิวเตอร์แล้วจะมีไดรเวอร์ฐานข้อมูลภายใต้เส้นทางการติดตั้งและสามารถใช้งานได้โดยตรง d: /oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
นอกจากนี้คุณยังสามารถดาวน์โหลดไดรเวอร์ฐานข้อมูล Oracle ได้โดยตรงจากเว็บไซต์ Oracle Official และใช้คำสั่ง SQL เพื่อสอบถามเวอร์ชันของไดรเวอร์ฐานข้อมูล: เลือก * จาก V $ อินสแตนซ์
จากนั้นยืนยันเวอร์ชันดาวน์โหลด: http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html
เปิดอินเทอร์เฟซบรรทัดคำสั่งของ Windows ป้อนไดเรกทอรีของแพ็คเกจไดรเวอร์ OJDBC6 แล้วเรียกใช้:
MVN Install: Install -File -DgroupId = com.oracle -DartifactId = OJDBC6 -DVERSION = 12.1.0.2.0 -dPackaging = jar -dfile = ojdbc6.jar
หาก "สร้างความสำเร็จ" จะปรากฏขึ้นสำเร็จพื้นที่เก็บข้อมูลท้องถิ่นของคุณจะถูกนำเข้าโดยอัตโนมัติ
จากนั้นคุณสามารถเพิ่มการพึ่งพาโครงการ Maven และแต่ละพิกัดสอดคล้องกับองค์ประกอบของคำสั่งข้างต้นดังนี้:
<Ederency> <roupId> com.oracle </groupId> <ratifactId> ojdbc6 </artifactId> <version> 12.1.0.2.0 </version>
ไฟล์การกำหนดค่าของ Spring: ApplicationContext.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: บริบท = "http://www.springframework.org/schema/tx" xmlns: util = "http:/ xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://ww.springframework.org/schema http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://ww.springframework การสแกนแพ็คเกจการกำหนดค่า-> <บริบท: Component-Scan base-package = "com.krry"> < /บริบท: Component-Scan> <!-นำเข้าไฟล์ทรัพยากรภายนอก-> <!-<บริบท: สถานที่ตั้งของผู้ถือครองตำแหน่ง = "JDBC.Properties" />-> Proxool Connection Pool-> <bean id = "dataSource"> <!-ชื่อไดรเวอร์, mysql-> <property name = "driver" value = "$ {db.driver}"> </คุณสมบัติ> <! ไม่ได้ใช้ แต่ไม่สามารถถูกทิ้งไว้)-> <property name = "user" value = "$ {db.username}"> </คุณสมบัติ> <!-รหัสผ่าน (Proxool ไม่ได้ใช้ แต่ไม่สามารถทิ้งไว้)-> <property name = "password" value = "$ {db.password}"> </ เมื่อการลาดตระเวนเสร็จสิ้นให้รีไซเคิลทันที ตอนนี้การทำลายหมดเวลาถูกตั้งค่าเป็น 4 วินาที)-> <ชื่อคุณสมบัติ = "การดูแลบ้าน" value = "3000"> </คุณสมบัติ> <!-ตรวจสอบโดยอัตโนมัติว่าการเชื่อมต่อนั้นเสียหรือไม่-> <ชื่อทรัพย์สิน = คำสั่งนี้ดำเนินการได้ดีที่สุดอย่างรวดเร็ว หากไม่ได้กำหนดไว้กระบวนการทดสอบจะถูกละเว้น-> <property name = "HousekeepingTestSql" value = "เลือกนับ (1) จากคู่"> </prove> <!-ถ้าแม่บ้านตรวจพบเวลากิจกรรมของเธรดมากกว่าค่านี้ มันจะฆ่าด้าย ดังนั้นยืนยันแบนด์วิดท์ของเซิร์ฟเวอร์ของคุณ จากนั้นตั้งค่าที่เหมาะสม ค่าเริ่มต้นคือ 5 นาที ตอนนี้ตั้งค่า 10 วินาที-> <property name = "MaximumActiveTime" value = "10,000"> </porement> <!-จำนวนขั้นต่ำของการเชื่อมต่อที่ไม่ได้ใช้งานที่จะถูกเก็บไว้ (ตอนนี้ตั้งค่า 20)-> <property name = "protopycount" value = "20"> </property> <!-จำนวนสูงสุดของการเชื่อมต่อ จำนวนการเชื่อมต่อขั้นต่ำ (ตอนนี้ตั้งค่า 50)-> <property name = "MinimumConnectionCount" value = "50"> </property> <!-ถ้าเป็นจริงดังนั้นแต่ละคำสั่ง SQL ที่ดำเนินการแต่ละคำสั่งจะถูกบันทึกในระหว่างระยะเวลาดำเนินการ (ระดับดีบัก) นอกจากนี้คุณยังสามารถลงทะเบียน connectionListener (ดู Proxoolfacade) เพื่อรับข้อมูลนี้ -> <property name = "trace" value = "false"> </property> <property name = "verbose" value = "true"> </property> </ebean> <!-ลงทะเบียนผู้จัดการธุรกรรม-> <bean id = "txmgr"> <property name = "dataSource" ref = "DataSource" Transaction-manager = "txmgr"/> <!-กำหนดค่า mybatis 'sqlsessionfactory-> <bean id = "sqlsessionfactory"> <property name = "dataSource" ref = "dataSource"> </property> <property name = "การกำหนดค่า ที่สามารถสแกน mapper โดยรวม-> <bean> <!-หากมีรายงานหลายรายงานให้แยกพวกเขาด้วยเครื่องหมายจุลภาค-> <ชื่อทรัพย์สิน = "basepackage" value = "com.krry.mapper"> </คุณสมบัติ> <property name = "sqlsessionfactorybeanname" value = "sqlsession ไฟล์กำหนดค่า MVC Spring: SpringMvc.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: p = "http://www.springframework.org/schema/p" xmlns: บริบท = "http://www.springframework.org/schema/util XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http:/www.springframework http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://ww.springframework http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <! FormattingConversionServiceFactoryBean-> <MVC: คำอธิบายประกอบ-ไดรฟ์> <MVC: ข้อความคอนเวอร์เตอร์ register-defaults = "true"> <bean> <property name = "Supportedediatypes"> <list> <dalue> text/plain; charset = utf-8 </alues> <bean/> <bean/> <bean> <bean> <property name = "prefixjson" value = "false"/> <property name = "ObjectMapper"> <Bean> <! /> </ebean> </คุณสมบัติ> <!-ไม่แสดงเมื่อฟิลด์เป็นค่า null-> <property name = "serializationinclusion"> <value type = "com.fasterxml.jackson.annotation.jsoninclude.include"> non_null </ค่า> <value> แอปพลิเคชัน/json; charset = utf-8 </value> <value> แอปพลิเคชัน/x-www-form-urlencoded; charset = utf-8 </value> </list> </property> </ebean> base-package = "com.krry.controller"> </บริบท: ส่วนประกอบ-สแกน> <!-การเข้าถึงไฟล์ทรัพยากรคงที่จะต้องตั้งค่าเนื่องจากในการกำหนดค่า SpringMVC คำขอทั้งหมด (.do, Adduser, JS/Image/CSS) ในโครงการนี้ <!-<MVC: Default-Servlet-Handler //>-> <MVC: การแม็พทรัพยากร = "/resourse/**" location = "/resourse/"/> <!-คำจำกัดความการสกัดกั้น-> <mvc: interceptors> <mvc: interceptor> <! path = "/admin/**"> </mvc: การแม็พ> <!-นี่คือเส้นทางที่จะไม่เข้าสู่ตัวดัก-> <mvc: exclude-mapping path = "/resourse/**"/> <! parser-> <bean id = "multipartresolver" p: defaultEncoding = "utf-8"> <property name = "uploadTempdir" value = "/temp"> </คุณสมบัติ> <property name = "MaxuploadSize"> <value> 209715200 <value> 4096 </value> <!-ขนาด 4KB อ่านและเขียน-> </คุณสมบัติ> </ebean> <!-ดูการเรนเดอร์ jsp/freemaker/ความเร็ว-> <bean> <!-สร้างเส้นทางไปยังที่เก็บหน้า-> <property name = value = ". jsp"> </property> </epeans>
ไฟล์กำหนดค่าฐานข้อมูล: jdbc.properties
db.driver = oracle.jdbc.oracledriver db.url = jdbc: Oracle: Thin:@127.0.0.1: 1521: ORCL DB.USERNAME = 4M+LA23KCA4 = DB.Password = WWIJCIYMPAU/= = = = = = = = = = = = = = = = = =
ฉันใช้อัลกอริทึมการเข้ารหัสที่นี่
บันทึกการกำหนดค่า: log4j.properties
log4j.rootlogger = debug, คอนโซล, filelog4j.appender.console = org.apache.log4j.consoleapenderlog4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender HH: MM: SS} %-5P [ %T] %10L - %M %NLOG4J.Appender.File = org.apache.log4j.rollingFileAppenderlog4j.appender.file.file.maxfil.mbend.mbend.MaPfend.MaPFENDEN truelog4j.appender.file.layout = org.apache.log4j.patternlayoutlog4j.appender.file.layout.conversionPattern = %d {yyyy/mm/dd/hh: mm: ss} %-5p [ %t] ไฟล์กำหนดค่า mybatis: mybatis-config.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" name = "cacheenabled" value = "true" /> <!-ปิดการโหลดทันทีของวัตถุที่เกี่ยวข้องสำหรับประสิทธิภาพ-> <การตั้งค่าชื่อ = "lazyloadingenabled" value = "true" /> <!-ตั้งค่ารูปแบบการโหลดของวัตถุที่เกี่ยวข้อง นี่คือฟิลด์โหลดตามความต้องการ (ฟิลด์โหลดถูกระบุโดย SQL) ฟิลด์ทั้งหมดของตารางที่เกี่ยวข้องจะไม่ถูกโหลดเพื่อปรับปรุงประสิทธิภาพ-> <การตั้งค่าชื่อ = "aggressivelazyloading" value = "false" /> <!-สำหรับการสืบค้น SQL ที่ไม่รู้จักชุดผลลัพธ์ที่แตกต่างกันได้รับอนุญาตให้ส่งคืนเพื่อให้ได้เอฟเฟกต์ทั่วไป value = "true" /> <!-อนุญาตให้ใช้ค่าคีย์หลักที่กำหนดเอง (เช่นการเข้ารหัส UUID 32 บิตที่สร้างขึ้นโดยโปรแกรมเป็นค่าคีย์) และกลยุทธ์การสร้าง PK ของตารางข้อมูลจะถูกเขียนทับ-> <การตั้งค่าชื่อ = "useGeneratedKeys" value = "true" /> <! <!-แคช SQL สำหรับการดำเนินการอัปเดตแบบแบตช์เพื่อปรับปรุงประสิทธิภาพ-> <การตั้งค่าชื่อ = "defaultExecutortype" value = "batch" /> <!-หมดเวลาหากฐานข้อมูลไม่ตอบสนองมากกว่า 25,000 วินาที-> <การตั้งค่า = "ค่าเริ่มต้น" </settings> <sypealias> <!-นามแฝงสำหรับวัตถุผู้ใช้ที่กำหนดเอง-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "ผู้ใช้"/>-> <!
ไฟล์การกำหนดค่าโปรแกรมเครือข่าย: web.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlns.jcp.org/xml xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/nsds id = "webapp_id" เวอร์ชัน = "3.1"> <จอแสดงผล-ชื่อ> maven_ssm </display-name> <welcome-file-list> <welcome-file> ดัชนี </welcome-file> <param-value> classpath: applicationcontext.xml </param-value> </context-param> <!-สปริงบริบทผู้ฟัง-> <ผู้ฟัง> <Sistener-Lass> org.springframework.web.context.contextloaderlistener <ผู้ฟัง> org.springframework.web.util.introspectorCleanupListener </listener-class> </listener> <tilter> <sider-name> การเข้ารหัส </filter-name> <param-name> การเข้ารหัส </param-name> <param-value> UTF-8 </param-value> </init-param> </filter> <filter-mapping> <mapping-name> การเข้ารหัส </filter-name> <url-pattern>/*</url-pattern> <servlet-name> maven_ssm </servlet-name> <servlet-lass> org.springframework.web.servlet.dispatcherservlet </servlet-class> <!-กำหนดค่าไฟล์การกำหนดค่า SpringMvc-> <! SpringMvc01-servlet.xml-> <init-Param> <param-Name> contextConfigLocation </param-name> <param-value> classpath: springmvc.xml </param-value> </init-param> </servlet> <servlet-mapping> < / servlet-mapping> <!-คุณสามารถจับคู่ *.do, *.Action (ความเข้าใจ) / (คีย์): คำขอทั้งหมดจะถูกแยกวิเคราะห์โดย Spring MVC แต่ไฟล์ทรัพยากรคงที่จะต้องกรองและเผยแพร่ ขอแนะนำให้คุณใช้วิธีนี้/*: ไม่แนะนำให้คุณใช้-> <servlet-mapping> <servlet-name> maven_ssm </servlet-name> <url-pattern>/</url-pattern>
ณ จุดนี้การกำหนดค่าพื้นฐานเสร็จสมบูรณ์และแพ็คเกจ JAR จะพึ่งพาโดยอัตโนมัติ ทดสอบและเขียนรหัส Java ที่ตามมา
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น