Mari kita bicara secara singkat tentang proyek SSM Maven Building (menggunakan database Oracle sedikit lebih merepotkan daripada MySQL, jadi mari kita bicarakan di sini)
Saat membuat proyek web Maven, dua folder: utama/java dan utama/tes sering hilang.
Larutan:
①: Klik kanan pada proyek dan pilih Properties, lalu klik Java Build Path, di bawah Perpustakaan, Edit Perpustakaan Sistem JRE, dan pilih Workspace Default JRE. (Ini disarankan)
②: Buat direktori secara manual. Tampilan sakelar menggunakan tampilan Navigator dan secara langsung membuat direktori Java di direktori SRC/utama.
Struktur Direktori Proyek:
File Konfigurasi Penting:
File Konfigurasi Model Objek: pom.xml
File Konfigurasi Spring: ApplicationContext.xml
File Konfigurasi MVC Spring: SpringMvc.xml
File Konfigurasi Database: JDBC.Properties
File konfigurasi log: log4j.properties
File Konfigurasi MyBatis: mybatis-config.xml
File Konfigurasi Program Jaringan: Web.xml
Pertama kali konfigurasikan pom.xml
pom.xml terutama menjelaskan koordinat maven proyek, dependensi, dan secara otomatis memperkenalkan paket toples.
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.krry</groupId> <artifactId>maven_SSM</artifactId> <version>0.0.1-SNAPSHOT</version> <name>maven_SSM</name> <rurl> http://maven.apache.org </rerl> <dependencies> <!-memperkenalkan junit-> <dependency> <groupid> JUNIT </proupid> <Artifactid> JUnit </artifactid> <version> 4.11 </Versi> <scope> Test </scope> </dependency> <! <GroupId> javax.servlet </groupid> <ArTifactId> servlet-api </t Artifactid> <version> 3.0-alpha-1 </version> <scope> disediakan </seupope> </dependency> <!-Memperkenalkan paket JSTL-> <sendendency> <sroupid> JSTL </groupid> <t Artl> <t Artl> <t Artl> <t Artl> <t Artl> <t Artl> <scope>provided</scope> </dependency> <!--Introducing the compilation dependency of jsp--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!--Introducing the compilation dependency of jsp--> <dependency> <GroupId> log4j </proveDid> <ArTifactId> log4j </artifactid> <version> 1.2.17 </version> </dependency> <!-Springmvc mybatis-> <!-Springmvc Construction Jar-SPRINGID> <GROPIDID> org.springfringfrework </groupact> <groupt> <groupid> org.springfringework </groupact </groupact> <grouptex> <version> 4.2.1.release </version> </dependency> <dependency> <GroupId> org.springframework </proupid> <ArtifactId> Spring-jdbc </artifactid> <version> 4.2.1.release </Versi> </dependency> <!-SpringMvc-Related-> </Version> </dependency> <! <ArTifactId> Spring-Webmvc </arttifactid> <version> 4.2.1.release </version> </dependency> <!-SpringMvc membutuhkan paket konversi JSON jackson-> <dependency> <roupid> com.fasterxml.jackson.core </groupid> <Artifactid> CONDENCENCE </ARTIFICT.4.4.4.4. <GroupId> com.fasterxml.jackson.core </groupid> <ArtifactId> Jackson-annotations </artifactid> <version> 2.5.4 </version> </dependency> <dependency> <Roupid> COM.FasterXML.Jackson.core </groupid> <Arttifactid> Version </artfactid> </Artifactid> </artfactid </version> </artfactid> </artfactid </groupid> <Trotif-datacid> <TiFacTID> <TiFACTID> <TIFACTID> JACHACTID </GROUTICID> <TIFACTID> JACHACTID </GROUTICID> <!-Validator Hibernate Verifikasi Latar Belakang JSR303-> <dependency> <Groupid> org.hibernate </proupid> <ArtifactId> hibernate-validator </arttifactid> <version> 5.1.1.Final </version> </Dependency> <!-Unggah file JAR yang terkait dengan file-</Versi> </Dependency> <! <ArTifactId> Commons -o </RaintifactId> <Version> 2.4 </version> </gandendency> <dependency> <Groupid> Commons-Fileupload </proupid> <RaintifactId> Commons-Fileupload </arttifactid> <version> 1.3.1 </version> </ketergantungan </Dependency> <groupter> <groupake. <ArTifactId> commons-lang3 </stifactid> <version> 3.3.2 </version> </dependency> <!-codec yang terkait dengan algoritma enkripsi-> <dependency> <nroupid> commons-codec </groupid> <artifactid> commons-codec </arttifactid> </groupid> <artifactId> commons-codec </arttifactid> </versi 1.9 </version> </version> </artfactid> </grupon> </orponent> </artfactId> </grupon> </ArtifactId> </ArtifactId> </ArtifactId </ArtifactId </ArtifacTID> -> <!-Driver Database Oracle-> <dependency> <GroupId> com.oracle </groupid> <ArtifactId> ojdbc6 </artifactid> <version> 12.1.0.2.0 </version> </dependency> <!-MySQL Database Driver (tidak digunakan di sini, driver oracle di atas)-groupl <! <ArtifactId> mysql-connector-java </stifactid> <version> 5.0.8 </version> <scope> runtime </opope> </dependency>-> <!-proxool connection pool-> <ruppendency> <groupid> com.cloudhopper.proxool </groupid> <Artifactid> Version.19.19. <dependency> <GroupId> com.cloudhopper.proxool </groupid> <t Artifactid> proxool-cglib </stifactid> <version> 0.9.1 </version> </dependency> <!-Memperkenalkan paket JAR yang diperlukan oleh mybatis-<gruppendency> <groupid> org.mybatis </groupid </ATACID> <grouppid> <groupid> org.mybatis </groupid <version> 3.3.1 </version> </dependency> <dependency> <GroupId> org.mybatis </groupid> <Artifactid> mybatis-spring </stifactid> <version> 1.2.4 </versi> </dependency> <!-Paket JAR yang diperlukan untuk manajemen pagination tidak digunakan di sini-</Dependency> <groupe. <artifactId>pagehelper</artifactId> <version>4.2.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <ArTifactId> Maven-war-plugin </stifactid> <version> 2.4 </version> <donfiguration> <version> 3.0 </version> </configuration> </plugin> </plugin> <finalname> maven_ssm </finalname> </build> </project>
Berikut adalah pertanyaan tentang proyek Maven menggunakan pom.xml untuk mengimpor paket driver oracle:
Karena masalah otorisasi Oracle, Maven tidak menyediakan driver Oracle JDBC. Untuk menerapkan driver Oracle JDBC dalam proyek Maven, itu harus ditambahkan secara manual ke repositori lokal.
Jika database Oracle sudah diinstal di komputer, ada driver database di bawah jalur instalasi dan dapat digunakan secara langsung. D: /oracle/oraclexe/app/oracle/product/10.2.0/server/jdbc/lib
Anda juga dapat mengunduh driver database Oracle langsung dari situs web resmi Oracle dan menggunakan pernyataan SQL untuk menanyakan versi driver database: SELECT * from v $ instance
Kemudian konfirmasi versi unduh: http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html
Buka antarmuka baris perintah Windows, masukkan direktori paket driver OJDBC6, lalu jalankan:
MVN Instal: install -file -dgroupId = com.oracle -dartifactId = ojdbc6 -dversion = 12.1.0.2.0 -dpackaging = jar -dfile = ojdbc6.jar
Jika "Build Success" berhasil ditampilkan, repositori lokal Maven Anda akan diimpor secara otomatis.
Kemudian Anda dapat menambahkan ketergantungan ke proyek Maven, dan setiap koordinat sesuai dengan elemen perintah di atas, sebagai berikut:
<dependency> <GroupId> com.oracle </groupid> <ArTifactId> ojdbc6 </artifactid> <version> 12.1.0.2.0 </version> </dependency>
File Konfigurasi Spring: ApplicationContext.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls XMLNS: AOP = "http://www.springframework.org/schema/aop" xmlns: context = "http://www.springframework.org/schema/tx" xmlns: util = "http:/schema/tx" xmlns: util = "http:/schema" xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.orga/beans/bwweans http://www.springframework.org/schema/beans/spring-leans.xsd http://www.springframework.org/schema/aop http://www.spramework.org/schema/aop/spring.spring.spramework.org/schemaMema/aop/spring http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util Pemindaian-> <konteks: komponen-scan-package = "com.krry"> < /context: component-scan> <!-Impor file sumber daya eksternal-> <!-<konteks: properti-placeHolder lokasi = "classpath: jdbc.properties" /-> <bean p: location = "classpath: jdbc.properties" / /<bean p: location = "classpath: jdbc. Proxool Connection Pool-> <bean id = "DataSource"> <!-Name Driver, mysql-> <name properti = "driver" value = "$ {db.driver}"> </property> <!-proxool string koneksi URL ini harus menentukan nama pengguna dan kata sandi-> <name properti = "driverl" value = "$ {db. tidak digunakan, tetapi tidak dapat ditinggalkan)-> <name properti = "user" value = "$ {db.userName}"> </pruptent> <!-kata sandi (proxool tidak digunakan, tetapi tidak dapat ditinggalkan)-> <nama properti = "kata sandi" untuk proxool {db.password} "> </properti> <!-kata sandi untuk interval waktu. Ketika pengintaian dilakukan, daur ulang segera. Penghancuran batas waktu sekarang diatur ke 4 detik)-> <nama properti = "housekeepingsleepime" value = "3000"> </propert> <!-Secara otomatis periksa apakah koneksi tersebut rusak-> <nama properti = "testBeforeuse" value = "true"> </preate> <!-Jika koneksi database idle ditemukan, penjaga rumah akan diuji dengan rumah ini. Pernyataan ini paling baik dieksekusi dengan sangat cepat. Jika tidak didefinisikan, proses pengujian akan diabaikan-> <nama properti = "housekeepingtestsql" value = "Pilih hitungan (1) dari dual"> </propert> <!-Jika pembantu rumah tangga mendeteksi bahwa waktu aktivitas utas lebih besar dari nilai ini. Itu akan membunuh utas. Jadi konfirmasikan bandwidth server Anda. Kemudian atur nilai yang sesuai. Standarnya adalah 5 menit. Sekarang setel 10 detik-> <nama properti = "MaximumeActiveTime" value = "10000"> </prop Property> <!-Jumlah minimum koneksi idle yang harus disimpan (sekarang set 20)-> <nama properti = "ProTotypeCount" value = "20"> </properti> <!-jumlah maksimum koneksi (sekarang ditetapkan 100)-<20 "> </properti> <! Jumlah minimum koneksi (sekarang set 50)-> <name properti = "minimumConnectionCount" value = "50"> </propt> <!-jika benar, maka setiap pernyataan SQL yang dieksekusi akan dicatat selama periode eksekusi (level debug). Anda juga dapat mendaftarkan ConnectionListener (lihat ProxoolFacade) untuk mendapatkan informasi ini. -> <name properti = "trace" value = "false"> </property> <properti name = "verbose" value = "true"> </propert> </ bean> <!-Daftarkan Transaction Manager-> <bean id = "txmgr"> <name properti = "DataSource" ref = "dataSource"> </properti> </bean> <!-Datasource "Ref =" DataSource " Transaction-Manager = "txmgr"/> <!-Mengkonfigurasi mybatis 'sqlSessionFactory-> <bean id = "sqlsessionfactory"> <name properti = "DataSource" ref = "DataSource"> </properte> <Property name = "configLocation" value = "classpath: myigis. scanner that can scan the mapper as a whole --> <bean> <!-- If there are multiple reports, separate them with commas --> <property name="basePackage" value="com.krry.mapper"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> </beans> File Konfigurasi MVC Spring: SpringMvc.xml
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "http:/schaM. XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-weans-3.0.xsd http:/wwww.spramework.orgemork.orgemework.orgemework.orgemework/orgemork.orgemork.orgemork.orgework.orgemork.orgemork.orgework.orgor.orger.orgemork http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/schema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-nyalakan mode anotasi-> <bean/> <! FormatTingConversionServICeFactoryBean-> <mvc: annotation-driven> <mvc: pesan-konversi register-default = "true"> <bean> <name properti = "mendukung <cuptedMedi> <cist> <value> Teks/polos; charset = UTF-8 </value> <list> <value> Text/Plain; charset = UTF-8 </value> <list> <value> TEXT/PLOCSET; charset = UTF-8 </value> <list> <value> TEXT/POLISE; Charset = UTF-8 </value> TEKS/HTML <Nilai>; </bean> <bean/> <bean/> <bean> <bean> <name properti = "prefixjson" value = "false"/> <properti name = "objectMapper"> <bean> <!-menangani jenis tanggal dalam responsbody-> <name properti = "dateFormat"> <bean> <konstruktor-type = "java." java. "d-d-d-d-d-d-d-do. HH:mm:ss" /> </bean> </property> <!-- Not displayed when the field is null --> <property name="serializationInclusion"> <value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value> </property> </bean> </property> <property name="supportedMediaTypes"> <list> <value> Aplikasi/JSON; charset = UTF-8 </ value> <value> Aplikasi/X-WWW-Form-Urlencoded; charset = UTF-8 </ value> </list> </property> </ bean> </mvc: paket scan-converter> </mvc: annotation-driven> </mvc-scan-converter> </mvc: annotation-driven> </s!-Paket scan-scan-comperony> </mvc: annotation-driven> </s!-scan comperter> </mvc: annotation-driven> </mvc: scan comperter> </conder-scanonon Base-package = "com.krry.controller"> </konteks: komponen-scan> <!-akses ke file sumber daya statis harus diatur, karena dalam konfigurasi springmvc, semua permintaan (.do, adduser, js/cadangan/css) dalam proyek ini akan diuraikan oleh springmvc, dan semua file static/css/css dalam dan filter ini akan diuraikan oleh springmvc, dan semua file statis/css/css-dalam proyek-dan semua filter static-dan semua file static akan diuraikan oleh SpringMVC, dan semua static Sumber <!-<mvc: default-servlet-handler //>-> <mvc: sumber daya pemetaan = "/sumber daya/**" lokasi = "/sumber daya/"/> <!-Definisi Interceptor-> <Mvc: Interceptors> <Mvc: Interceptor> <! path = "/admin/**"> </mvc: Mapping> <!-Ini adalah jalur yang tidak akan memasuki pencegat-> <mvc: tidak termasuk path pemetaan = "/sumber daya/**"/> <!-Kelas yang dimasukkan oleh Interceptor, Pengembalian False untuk menunjukkan bahwa input tidak akan masuk-> <Being//MV: MV: MV: MV: MV: MV: MV: MV: MV: MV:> </MV: Parser-> <bean id = "multipartresolver" p: defaultEncoding = "utf-8"> <name properti = "unggahtempdir" value = "/temp"> </property> <properti name = "maxuploadsize"> <value> 209715200 </value> <!-200mb-</namezy> "name </value> </value> </value> </aM name =" "value> </value> </value> </200mb-" "name </value> </value </value> </value> </aM name =" "name </value> </200mb-" "" <value> 4096 </ value> <!-Ukuran 4kb Baca dan tulis-> </pruptent> </t bean> <!-Lihat rendering jsp/freemaker/velocity-> <bean> <!-Buat jalur ke penyimpanan halaman-> <nama properti = "prefix" value = "/web-inf/halaman/"> </properti> <! value = ". jsp"> </prop Property> </tobel>
File Konfigurasi Database: JDBC.Properties
db.driver = oracle.jdbc.oracledriver db.url = jdbc: oracle: tipis:@127.0.0.1: 1521: orcl db.username = 4m+la23kca4 = db.password = wwijciympau/= =
Saya telah menggunakan algoritma enkripsi di sini
File konfigurasi log: log4j.properties
log4j.rootlogger = debug, konsol, filelog4j.applog.console = org.apache.log4j.consoleAppenderlog4j.apploger.console.layout = org.apache.log4j.patternlayoutlog4j.applender.console.layout HH: mm: ss} %-5p [ %t] %10l - %m %nlog4j.Appender.file = org.apache.log4j.rollingfileAppenderLog4j.appler.pile.file.file = D: /Log4j.loglog4j.appender.pile.file.file.file.file.file. truelog4j.Appender.file.layout = org.apache.log4j.patternlayoutlog4j.applender.file.layout.conversionPattern = %d {yyyy/mm/dd/hh: mm: ss} %-5p [ %t] %m %m % File Konfigurasi MyBatis: mybatis-config.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <configuration> <donging>-Configuration/confluration/confiduring/crobpers/munclation <! name = "Cacheenabled" value = "true" /> <!-Matikan pemuatan instan objek terkait untuk kinerja-> <pengaturan nama = "lazyloadingEnabled" value = "true" /> <!-atur bentuk pemuatan objek yang terkait. Berikut adalah bidang beban berdasarkan permintaan (bidang beban ditentukan oleh SQL). Semua bidang dari tabel terkait tidak akan dimuat untuk meningkatkan kinerja-> <pengaturan nama = "agresivelazyloading" value = "false" /> <!-Untuk pertanyaan SQL yang tidak diketahui, set hasil yang berbeda diizinkan untuk dikembalikan untuk mencapai efek umum-> <pengaturan nama = "MultiplerultSetSenAndenabled" Nilai = "true" /<! value = "true" /> <!-Izinkan untuk menggunakan nilai kunci primer khusus (seperti pengkodean UUID 32-bit yang dihasilkan oleh program sebagai nilai kunci), dan strategi pembuatan PK tabel data akan ditimpa-> <pengaturan nama = "UsegeneratedKeys" value = "true" /> <! Cache SQL untuk operasi pembaruan batch untuk meningkatkan kinerja-> <pengaturan nama = "defaultExecutorType" value = "batch" /> <!-Timeout Jika database belum merespons lebih dari 25.000 detik-> <pengaturan nama = "DefaultSTattimeOut" value = "25" /<pengaturan nama = "LazyLoadTrigerThods" value = "25" /<pengaturan nama = "LazyLoadRigerThods" value = "25" </Pengaturan> <yypealis> <!-alias untuk objek pengguna khusus-> <!-<typealias type = "com.krry.mybatis.sysmanage.entity.user" alias = "user"/-> <!-Definisi Batch-> <paket nama = "com.krry.entity"
File Konfigurasi Program Jaringan: Web.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <Web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlnsmlnsp.org/org/xlns =" http://xmlnsmlnsp.org/org/xx = XSI: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/xml/xml/xml/nee/nee/JEE/JEE/JEE/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/XML/xml id = "webapp_id" version = "3.1"> <lplay-name> maven_ssm </play-name> <creendak-file-file> <creendak-file> </celcome-file> </celcome-file-list> <!-memuat container spring IOC-> <param> <param-name> ContextConfiglocation </param-name> <param-value> classpath: applicationContext.xml </param-value> </context-param> <!-listener konteks musim semi-> <listener> <listener-class> org.springframework.web.context.contextLoaderer </listener-classis> </listener> <! <listener-class> org.springframework.web.util.introspectorcleanuplistener </engeaner-class> </engeaner> <nilter> <nilter-name> encoding </filter-name> <nilter-class> org.springframework.web.filter.filter.characterencfilter </class-class> <ny-class.wame.web.filter.characterencfilter </clf./clotnam> <Param-Value> UTF-8 </param-value> </itin-param> </tilter> <nilter-Mapping> <nilter-name> encoding </tiler-name> <ruch-pola>/*</ruch-pola> </filter-Mapping> <! <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <!-Mengkonfigurasi file konfigurasi springmvc-> <!-Jika opsi berikut tidak dikonfigurasi, sistem default untuk memuat file yang bernama [servlet-name] -servlet.xml di bawah classpath springmv. <param-name> ContextConfigLocation </param-name> <param-value> classpath: springmvc.xml </param-value> </it-param> </servlet> <servlet-mapping> <servlet-name> maven_ssm </servlet-name> <remrlet-pattern>/index/exiCing. (Memahami) / (Key): Semua permintaan akan diuraikan oleh Spring MVC, tetapi file sumber daya statis harus difilter dan dirilis. Dianjurkan agar Anda menggunakan metode ini/*: tidak disarankan untuk menggunakan-> <servlet-mapping> <servlet-name> maven_ssm </servlet-name> <ritl-pattern>/</rucpat pola> </servlet-mapping> </web-papp>
Pada titik ini, konfigurasi dasar selesai dan paket JAR secara otomatis diandalkan. Menguji dan menulis kode java berikutnya
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.