Konsep Dasar
1.1. Musim semi
Spring adalah kerangka kerja open source, kerangka kerja pengembangan Java yang ringan yang muncul pada tahun 2003, berasal dari beberapa ide dan prototipe yang dijelaskan oleh Rod Johnson dalam bukunya ahli pengembangan dan desain J2EE satu-satu. Itu dibuat untuk mengatasi kompleksitas pengembangan aplikasi perusahaan. Spring menggunakan Javabeans dasar untuk melakukan hal -hal yang sebelumnya hanya dimungkinkan oleh EJB. Namun, penggunaan Spring tidak terbatas pada pengembangan sisi server. Dari perspektif kesederhanaan, testabilitas, dan kopling longgar, aplikasi Java apa pun dapat memperoleh manfaat dari musim semi. Sederhananya, Spring adalah inversi kontrol yang ringan (IOC) dan kerangka kontainer berorientasi bagian (AOP).
1.2. Springmvc
Spring MVC adalah produk selanjutnya dari SpringFramework dan telah diintegrasikan ke dalam aliran web Spring. Spring MVC memisahkan peran pengontrol, objek model, operator, dan objek penangan, dan pemisahan ini membuatnya lebih mudah untuk disesuaikan.
1.3. Mybatis
Mybatis adalah proyek open source dari Apache. Pada 2010, proyek ini dipindahkan dari Apache Software Foundation ke Google Code dan berganti nama menjadi Mybatis. Mybatis adalah kerangka kerja kegiatan kegigihan berbasis Java. Ibatis menyediakan kerangka kerja lapisan persistensi termasuk peta SQL dan objek akses data (DAO) MyBatis menghilangkan pengaturan manual hampir semua kode dan parameter JDBC dan pengambilan set hasil. Mybatis menggunakan XML sederhana atau anotasi untuk konfigurasi dan pemetaan asli untuk memetakan antarmuka dan pojos Java (objek java tua biasa) ke dalam catatan dalam database.
Langkah 1: Buat proyek web melalui Maven.
Langkah 2: Impor file POM ke dalam paket JAR
(1) pom.xml
Saya menyalin seluruh file POM, dan Anda perlu menghapus beberapa hal inisialisasi dan menyimpan salinan yang Anda hasilkan oleh POM Anda sendiri.
<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 "> <podelversion> 4.0.0 </podelversion> <groupid> com.test </groupid> <ArTifactId> SSM </arttifactid> <packaging> war </packaging> <artifactD> </arttifactid> <packaging> war </packaging> <cersion> 0.0.0.1.1 <rerl> http://maven.apache.org </rerl> <props> <!-Nomor versi musim semi-> <spring.version> 4.0.2.release </spring.version> <!-Nomor versi mybatis-> <mybatis.version> 3.2.6 </mybatis.version> <! <slf4j.version> 1.7.7 </slf4j.version> <tog4j.version> 1.2.17 </log4j.version> </Properties> <dependencies> <dependency> <groupid> Junit </groupid> <Artifactid> Junit </arttifactid> <groupid> </groupid> <Artifactid> Junit </arttifactid> <groupD versi 3.8.8.8.18.18 <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <GroupId> org.springframework </groupid> <ArtiFacTId> Spring-oxm </artifactid> <version> $ {spring.version} </version> </dependency> <tropping> </art/art/version </groupId> <artfaction> </version> version> versi </version> </grupsid> <crotif-tx </art/version </groupid </groupid> <artfactid> </art/art </Dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> spring-jdbc </artifactid> <version> $ {spring.version} </version> </dependency> <sgroupid> org.springframework </versier> </dependency> <rouplence> org.springframework </version> <sependency> <RoGROPID> org.springframework </groupid> <ArTifAcD> <version> $ {spring.version} </version> </dependency> <dependency> <groupId> org.springframework </groupid> <RaintifactId> spring-aop </sartifactid> <version> $ {spring.version} </version> </dependency> <dependency> <version> $ {springpror <ArTifactId> Spring-Context-Support </arttifactId> <version> $ {spring.version} </version> </dependency> <dependency> <groupId> org.springframework </sroupid> <ArtifactId> Spring-test </artifactid> <version> $ {spring.version} </Version> </artifactid> <version> $ {spring.version} </Version> Version> </artifactid> <version> $ {spring.version} </Version> </artifactid> <version> <version> $ {spring.version} </Version> <GroupId> org.mybatis </groupId> <ArTifactId> mybatis </t Artifactid> <version> $ {mybatis.version} </version> </dependency> <!-paket mybatis/spring-> <sgroupid> org.mybatis </groupid> <sandsid> <croGactD> MyB.Mybatis </groupid> <sandsid> <version> 1.2.2 </version> </dependency> <!-Impor paket Java EE JAR-> <dependency> <Groupid> Javax </groupid> <ArTifactId> Javaee-API </artifactid> <version> 7.0 </version> </dependency> <!-Impor mysql link database link mysql jar-</version> </dependency> <! <ArTifactId> mysql-connector-java </stifactid> <version> 5.1.30 </version> </dependency> <!-Impor paket JAR DBCP untuk mengonfigurasi database di ApplicationContext.xml-> <groupid> Commons-DBCP </groupid> <ArTifacTid> Commons> commons-dbcp </groupid> commons> commons-dbcp </groupid> commons> commons-dbcp </groupid> commons> commons-dbcp> commons> commons </groupD> <version> 1.2.2 </version> </dependency> <!-Kelas tag JSTL-> <dependency> <Groupid> JSTL </GroupId> <ArTifactId> JSTL </ArtifactId> <version> 1.2 </version> </Dependency> <!-Paket Manajemen File-> <!-Log Start-> </Versi> </Dependency> <! <ArTifactId> LOG4J </artifactId> <Version> $ {log4j.version} </version> </dependency> <!-Format objek untuk memfasilitasi output log-> <dependency> <roupid> com.alibaba </groupid> <ArTifactid> fastjson </artifactid> </gruptid> <ArtifactId> fastjson </artifactid> </groupid> <tifactid> fastjson </artifactid> </version.1 </groupid> <tifactid> fastjson </artifactid> 1.1 versi </groupId> <Artifactid> </artfactid </artifactid> </gruptid> <TRIGOCTID> <TRIPTICY> </artifactid </artifactid </art/versi </groupid> <GroupId> org.slf4j </groupid> <ArTifactId> slf4j-api </stifactid> <version> $ {slf4j.version} </versi> </dependency> <sependency> <groupid> org.slf4j </groupid> <Artifactid> SlF4J-log4j1 </groupid> <Artifactid> SLF4J-log4j1 </groupid> <Artifactid> slf4j-log4j1 </groupid> <ArTifactid> slf4j-log4j1 </groupid> <ArTifactid> slf4j-log4j4j </groupid> <Artifactid> slf4j-log4j4j </groupid> slF4j-log4j </groupid> <version> $ {slf4j.version} </version> </dependency> <!-log end-> <!-input json-> <dependency> <groupid> org.codehaus.jackson </groupid> <ArTifactId> Jackson-Mapper-Asl </artifactid> <version> 1.9.13 </Version> </unggah </Artifactid> <version> 1.9.13 </Version> </Version> </unggah </artifactid> <versi> 1.9.13 </Version> </Version> </ARTIFACTID> </Versi 1.99.19 </Version> </Version> </Artifactid> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <ArTifactId> commons-codec </artifactid> <version> 1.9 </version> </gandendency> </dependencies> <build> <finalname> ssm </finname> </build> </joy>Langkah 3: Lihatlah keseluruhan struktur proyek, izinkan saya menjelaskan bahwa saya tidak memiliki hal-hal terkait tentang SpringMVC di sini, karena saya pertama kali mengintegrasikan Spring-Mybatis, dan ketika menguji apakah itu berhasil, saya berhasil mengintegrasikan SpringMVC.
Langkah 4: Buat kelas model
pengguna kelas publik {private int id; nama string pribadi; kata sandi string pribadi; kata sandi string pribadi2; /*Menyediakan Metode Set dan Dapatkan, Metode ToString*/}Langkah 5: Buat database, antarmuka userdao dan file pemetaan mapper
(1) Buat tabel yang sangat sederhana
(2) Antarmuka userdao
antarmuka publik userdao {pengguna findUserbyId (pengguna pengguna);}(3) uesrmapper.xml
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-papper -> <mapper namespace = "com.ssm.dao.userdao"> <!-kueri informasi pengguna berdasarkan id-> <!-id: Identifikasi pernyataan yang unik, yang sama dengan nama metode userdao#{}: mewakili placeholder. Jika parameter tipe sederhana dilewatkan di #{}, nama di #{} adalah parametertype sewenang-wenang: jenis parameter input, yang sama dengan parameter di userdao () hasil hasil: tipe hasil output, yang sama dengan com.userp.sele "com.usmm. resultType = "com.ssm.model.user"> Pilih * dari pengguna <where> <if test = "name! = null"> dan name = #{name} </if> <if test = "password! = null"> dan password = #{kata sandi} </if> </where> </pilih> </mapper>Langkah 5: Buat UserserService dan UserserServiceImpl
(1) Userservice
Public Interface UserService {pengguna publik getUserbyId (pengguna pengguna); }(2) UserServiceImpl
Impor org.springframework.stereotype.service; import com.ssm.dao.userdao; import com.ssm.model.user; import com.ssm.service.userservice; @Resource ("UserService") UserServerImpl Menyaran pengguna publik getUserbyId (pengguna pengguna) {return this.userdao.finduserbyId (user); }}Langkah 6: Buat File JDBC dan File Log Log
(1) JDBC.Properties
jdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc/: mysql/: // localhost/: 3306/test? UseUnicode = true && characterencoding = utf-8jdbc.username = rootjdbc.password = root
(2) log4j.properties
log4j.rootlogger = info, konsol, file #define Tujuan output log sebagai konsol log4j.appender.console = org.apache.log4j.consoleAppender log4j.appender.console.target = System.out #can secara fleksibel menentukan format output log berikut ini spesifikasi berikut ini spesifikasi format berikut ini spesifik format Log org.apache.log4j.patternlayout log4j.applender.console.layout.conversionPattern = [%c] -%m%n #Ketika ukuran file mencapai ukuran yang ditentukan, file baru dihasilkan log4j.appender. Log/ssm.log #define Ukuran file maksimum log4j.Appender.file.maxfileSize = 10MB #Output jadi log. Jika Anda mengubahnya menjadi debug, itu berarti log output di debug atau di atas level log4j.applender.file.threshold = semua log4j.applender.file.layout = org.apache.log4j.patternlayout log4j.appender.file.layout.conversionPattern = [%p] [%d {d {lo-my-mmy-mmy-mmyy. Hh/: mm/: ss}] [%c]%m%nLangkah 7: Mengintegrasikan Spring-Mybatis.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/mvc" xsi: schemalocation = "http:/schema http://www.springframework.org/schema/beans/spring-weans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-pemindaian otomatis-> <konteks: komponen-scan base-package =" com. " <bean id = "PropertyConfigurer"> <properti name = "location" value = "classpath: jdbc.properties" /> </ bean> <!-2. Pool koneksi database-> <bean id = "DataSource" destrash-method = "tutup"> <nama properti = "driverclassname" value = "$ {JD" /JD " /JD" /JD " /JD" /JD " /JD" /JD " /JD" /JD " /JD" /JD "NAME /JD" NAME /JD "$" value = "$ {jdbc.url}" /> <name properti = "username" value = "$ {jdbc.username}" /> <name properti = "kata sandi" value = "$ {jdbc.password}" /> </taskory <!-Integrate Spring dan Mybatis untuk mengelola mybatis 'Sesi Mybatis' Sesi Mybatis ' ID = "SQLSessionFactory"> <!-Tentukan referensi kumpulan koneksi database-> <name properti = "DataSource" ref = "DataSource"/> <!-Pemindaian otomatis file pemetaan.xml-> <name properti = "mapperlocations" value = "classpath: com/ssm/mapper/*. Berlokasi, Spring akan secara otomatis menemukan kelas di bawahnya-> <bean> <name properti = "basepackage" value = "com.ssm.dao"/> <name properti = "sqlsessionfactorybeanname" value = "sqlsessionfactory"> </so propert> </bean> <!-(manajemen transaksi) </soAcact "foratran> </bean> <!-(Manajemen Transaksi), Transaction, Transaction, Transaction, Transaction, Transaction, Management, Transaction, Management, Transaction, Manajer Transaksi, Manajer Transaksi, Transaction, ID = "TransactionManager"> <Properti Nama = "DataSource" Ref = "DataSource"/> </bean> </tacer>Langkah 8: Buat kelas tes
Setelah langkah -langkah di atas (log4j tidak cocok dan tidak berpengaruh), kami telah menyelesaikan integrasi Spring dan Mybatis, sehingga kami dapat menulis sepotong kode uji untuk mencoba apakah itu telah berhasil.
Kelas uji ditetapkan dalam SRC/Test/Java. Jika tes berhasil, itu berarti bahwa Spring dan Mybatis telah berhasil diintegrasikan. Informasi output dicetak ke konsol menggunakan log4j.
(1) kelas tes testmybatis
paket ssm; import javax.annotation.resource; impor org.apache.log4j.logger; impor org.junit.test; impor org.junit.runner.runwith; impor org.springframework.test.context.contextonfiguration; Impor; org.springframework.test.context.junit4.springjunit4classrunner; impor com.ssm.model.user; impor com.ssm.service.userservice; dimuat*/ @contextConfiguration (lokasi = {"classPath: spring-mybatis.xml"}) kelas publik testmybatis {@resource (name = "userservice") UserserService UserserService pribadi; @Test public void test1 () {user user = new user (); user.setname ("Zhang San"); user.setPassword ("123"); User user1 = UsserService.getUserbyId (pengguna); System.out.println (user1.toString ()); }}akhirnya! Kuncinya adalah melihat output latar belakang, yang juga merupakan waktu untuk menyaksikan keajaiban. Jika objek output adalah output, itu berarti konfigurasi dan integrasi Anda berhasil!
Kemudian kami mulai mengintegrasikan SpringMVC
Langkah 9: Konfigurasikan 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/mvc" xsi: schemalocation = "http:/schema http://www.springframework.org/schema/beans/spring-weans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! Base-package = "com.ssm.controller"/> <!-hindari file unduhan saat yaitu mengeksekusi jax dan kembali ke json-> <bean id = "mappingJacksonHttpmessageConverter"> <nama properti = "start-uT/</list> <cist> <nilai> Teks/html; charset = —koret-8 Fungsi Anotasi SpringMVC Untuk menyelesaikan pemetaan permintaan dan anotasi pojos-> <bean> <name properti = "messageConverters"> <cist> <ref bean = "mappingjacksonhttpmessageConverter"/> <!-json converter-> </list> </properti> </bean> <! <Bean> <!-Pemahaman saya tentang konfigurasi di sini adalah untuk secara otomatis awalan dan sufiks string yang dikembalikan dengan metode tindakan selanjutnya untuk menjadi alamat URL yang tersedia-> <name properti = "prefix" value = "/web-inf/jsp/"/> <property name = "suffix" value = ". jsp"/</bean> <!-<! Jika Anda tidak menggunakan unggahan file, Anda tidak perlu mengonfigurasinya. Tentu saja, jika Anda tidak cocok, maka tidak perlu memperkenalkan paket komponen unggahan dalam file konfigurasi-> <bean id = "multipartresolver"> <!-encoding default-> <name properti = "DefaultEncoding" value = "UTF-8" /> <!-Ukuran file maksimum-> <nama properti = "MAXUPLOADIZE" MAXUMIMLE " /MAXIME." MAXIME. "MAXUMICE = MAXUMICE = MAXIME." MAXUMICE = MAXUMICE = MAXUMICE = MAXIME. "MAXUMICE = MAXUMIME /MAVIME,> -> <name properti = "maxInmemorySize" value = "40960"/> </t bean> </tobel>
Langkah 10: Konfigurasikan file web.xml
Pengenalan spring-mybatis.xml dan servlet spring-MVC yang dikonfigurasi adalah untuk integrasi SSM. Dua integrasi kerangka kerja sebelumnya tidak memerlukan konfigurasi di sini.
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/we-noulpe.30" "Version" "versun" versun "versun" versun "versun" versun " Aplikasi Web </play-name> <!-File Konfigurasi Spring dan MyBatis-> <Context-param> <param-name> ContextConfigLocation </param-name> <param-value> classpath: spring-mybatis.xml </param-value> </context-param> <!-Filter-n-n-nyfiling </Param-Value> </Context-Param> <!-Filter-n-n-n-nyany <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name> encodingfilter </filter-name> <ruct-pola>/*</ruRl-pattern> </tiler-Mapping> <!-listener spring-> <listener-class> org.springframework.web.context.contextLoadererer </listener-classis> </listener> <pencere! <listener-class> org.springframework.web.util.introspectorcleanuplistener </engeaner-class> </engeaner> <!-Spring MVC Servlet-> <servlet> <servlet-name> </servlet-name> <servlet-class> org.springframework.wispats. <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name> springmvc </servlet-name> <!-Di sini Anda dapat mengonfigurasi *.do, sesuai dengan kebiasaan sufiks struts-> <roRl-pola>/</rerl-pola> </servlet-Mapping> <creendak-file-list> <creendak-fils
Langkah 11 Tes Akhir:
(1) Tulis login.jsp pertama
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "UTF-8"%> <Html> <head> <itement> Login Pengguna: </title> </head> <body> <form Acti name = "UserName"> </input> <br> <br> <label> Kata sandi: </label> <input type = "text" id = "password" name = "password"> </pertut> <br> <br> <input type = "kirim" value = "Login"/> </form> </bod> </html>
Antarmuka:
(2) Menulis UserController
Impor javax.servlet.http.httpservletrequest; impor org.springframework.steretype.controller; impor org.spramework.web.bind.annotation.requestmapping; com.ssoner.userdao; impor com.ssm.ssmeler {conererdao; impor com.ss.ssm.ssmeler; @Resource private userdao userdao; @RequestMapping ("/jsp/login") Login string publik (permintaan httpservletRequest) {string username = request.getParameter ("nama pengguna"); String password = request.getParameter ("password"); Pengguna pengguna = pengguna baru (); // query basis data user.setName (nama pengguna); user.setPassword (kata sandi); Pengguna pengguna = userdao.finduserbyId (pengguna); // Jika ada siswa, itu berarti login berhasil jika (pengguna! = Null) {return "susscss"; } // Saya tidak menulis JSP ini, selama yang Anda tahu, Anda dapat menulis pengembalian Anda sendiri "err";}}(3) Akhirnya, susscss.jsp
<%@ page language = "java" contentType = "text/html; charset = UTF-8" pageEncoding = "UTF-8"%> <Html> <body> <p> Kata sandi akun pengguna benar, login berhasil </p> </bod> </html>
Sempurna!
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.