기본 개념
1.1. 봄
Spring은 2003 년에 등장한 가벼운 Java 개발 프레임 워크 인 오픈 소스 프레임 워크로 Rod Johnson이 설명한 일부 아이디어 및 프로토 타입에서 나온 그의 책 전문가 일대일 J2EE 개발 및 디자인에서 설명했습니다. 엔터프라이즈 응용 프로그램 개발의 복잡성을 해결하기 위해 만들어졌습니다. Spring은 기본 Javabeans를 사용하여 이전에 EJB가 가능했던 일을합니다. 그러나 Spring의 사용은 서버 측 개발에만 국한되지 않습니다. 단순성, 테스트 가능성 및 느슨한 커플 링 관점에서 모든 Java 응용 프로그램은 스프링의 혜택을받을 수 있습니다. 간단히 말해서, Spring은 제어 (IOC) 및 섹션 지향 (AOP) 컨테이너 프레임 워크의 경량 반전입니다.
1.2. SpringMVC
Spring MVC는 SpringFramework의 후속 제품이며 Spring 웹 흐름에 통합되었습니다. Spring MVC는 컨트롤러, 모델 객체, 디스패처 및 핸들러 객체의 역할을 분리 하며이 분리를 쉽게 사용자 정의 할 수 있습니다.
1.3. mybatis
Mybatis는 Apache의 오픈 소스 프로젝트입니다. 2010 년 에이 프로젝트는 Apache Software Foundation에서 Google 코드로 이전되었으며 Mybatis로 이름이 바뀌 었습니다. Mybatis는 Java 기반 지속성 계층 프레임 워크입니다. IBATIS는 SQL 맵 및 데이터 액세스 개체 (DAO)를 포함한 지속성 계층 프레임 워크를 제공합니다. mybatis는 거의 모든 JDBC 코드 및 매개 변수의 수동 설정과 결과 세트의 검색을 제거합니다. MyBatis는 단순한 XML 또는 주석을 사용하여 구성 및 원래 매핑을 위해 인터페이스 및 Java의 Pojos (일반 Old Java Objects)를 데이터베이스의 레코드로 맵핑합니다.
1 단계 : Maven을 통해 웹 프로젝트를 만듭니다.
2 단계 : POM 파일을 JAR 패키지로 가져옵니다.
(1) pom.xml
전체 POM 파일을 복사했으며 초기화를 제거하고 자신의 POM으로 생성 한 사본을 유지해야합니다.
<project xmlns = "http://maven.apache.org/pom/4.0.0"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xsi : schemalocation = "http://maven.apache.org/pom/0.0.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> com.test </groupid> <artifactid> ssm </artifactid> <packaging> war </packaging> </packaging> 0.0.1-snapshot> <Url> http://maven.apache.org </url> <properties> <!-스프링 버전 번호-> <스프링 .version> 4.0.2. release </spring.version> <!-mybatis 버전 번호-> version> 3.2.6 </mybatis.version> <!-log4j 패키지 버전-> <slf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </properties> <pecientencies> <prectionency> <groupId> junit </groupId> <atifactid> junit> </inpectiment> 3.8.1 </version> </version> test> </version> <groupid> org.springframework </groupid> <artifactid> 스프링 코어 </artifactid> <bersion> $ {spring.version} </version> </dependency> <prectionency> <groupid> org.springframework </groupid> <artifactid> spring-web </artifactid> <$ {spring.version}} <pectionency> <groupId> org.springframework </groupid> <artifactid> spring-xm </artifactid> <버전> $ {spring.version} </version} </version} </version </fectionency> <groupId> org.springframework </groupid> <artifactid> spring-tx </artifactid> <spring> $ {spring> $ el.version} </의존성> <pectionency> <groupId> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <version> $ {spring.version} </version> </dependency> <groupid> org.springframwork </group-hubmvc </artifactid> </artifactid> <버전> $ {spring.version} </version} </version> </dependency> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-aop </artifactid> <version> $ {spring.version} </version> </dependency> <groupid> <groupid> org.springframework </groupid> <ArtifactID> Spring-Context-Support </artifactid> <버전> $ {spring.version} </version> </version> <pectionency> <groupid> org.springframework </groupId> <artifactid> spring-test </artifactid> <version> $ {spring.version} </version> </delponis> <groupid> org.mybatis </groupid> <artifactid> mybatis </artifactid> <버전> $ {mybatis.version} </version> </dependency> <!-mybatis/spring package-> <groupid> org.mybatis </groupId> <artifactid> mybatis-sprong. <버전> 1.2.2 </version> </fectionency> <!-Java EE JAR 패키지 가져 오기-> <pectionency> <groupId> javax </groupId> <artifactID> javaee-api </artifactid> <버전> 7.0 </version> </fexendence> <!-import mysql database jar-> <Groupl </version> <groupl </version> </version> </version> </version> </version> <pelection> </version> <Artifactid> mysql-connector-java </artifactid> <bersion> version> 5.1.30 </version> </dependency> <!-DBCP의 JAR 패키지를 가져와 ApplicationContext.xml에서 데이터베이스를 구성하기 위해 DBCP의 JAR 패키지를 가져옵니다. <버전> 1.2.2 </version> </dependency> <!-jstl tag class-> <pectionency> <groupId> jstl </groupId> <artifactid> jstl </artifactid> <버전> 1.2 </version> </version> <!! <artifactid> log4j </artifactid> <버전> $ {log4j.version} </version} </version} </version} </version </fectionement> <!-로그 출력을 용이하게하는 객체 형식-> <pectionency> <groupID> com.alibaba </groupId> <artifactid> fastjson </arevifactid> </version> </rependency> </refence> <groupid> org.slf4j </groupid> <artifactid> slf4j-api </artifactid> <버전> $ {slf4j.version} </version} </version} </version} </depection> <groupid> org.slf4j </groupid> <artifactid> slf4j-log4j12 </artifactid> <버전> $ {slf4j.version} </version> </dependency> <! <!-log end-> <!-입력 json-> <prection> <groupid> org.codehaus.jackson </groupIdson </groupID> <artifactID> jackson-mapper-asl </artifactid> <bersion> 1.9.13 </version> <! <groupid> commons-fileupload </groupid> <artifactid> commons-fileupload </artifactid> <3.1 </version> </dependency> <pectionement> <groupid> commons-io </groupid> <artifactid> commons-io </artifactid> 2.4 </applency> <grouped> commommons> <groudid> <Artifactid> Commons-Codec </artifactid> <버전> 1.9 </version> </fectionency> </fectionements> <build> <finalname> ssm </finalname> </build> </project>3 단계 : 전반적인 프로젝트 구조를 살펴보면 스프링 미 바티스를 먼저 통합하고 성공 여부를 테스트 할 때 SpringMVC를 성공적으로 통합하기 때문에 여기에 SpringMVC와 관련된 관련 사항이 없다고 설명하겠습니다.
4 단계 : 모델 클래스를 만듭니다
공개 클래스 사용자 {private int id; 개인 문자열 이름; 개인 문자열 비밀번호; 개인 문자열 비밀번호 2; /*세트 및 GET 메소드 제공, TOSTRING Method*/}5 단계 : 데이터베이스 만들기, userDao 인터페이스 및 매퍼 매핑 파일 생성
(1) 매우 간단한 테이블을 만듭니다
(2) userdao 인터페이스
public interface userDao {user findUserById (사용자 사용자);}(3) uesrmapper.xml
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <! namespace = "com.ssm.dao.userdao"> <!-id-> <!-id : userdao 메소드 이름#{}와 동일한 문을 고유하게 식별하는 쿼리 사용자 정보 : 자리 표시자를 나타냅니다. 간단한 유형 매개 변수가 #{}에 전달되면 #{}의 이름은 userDao () resultType의 매개 변수와 동일한 입력 매개 변수의 유형입니다. userDao () return type-> <induserById "와 동일합니다. resulttype = "com.ssm.model.user"> select * from ours <were> <if test = "name! = null"> 및 name = #{name} </if> <if test = "password! = null"> 및 password = #{password} </if> </where> </mapper>5 단계 : userService 및 usererViceimpl을 만듭니다
(1) 사용자 서비스
public interface userervice {public user getUserById (사용자); }(2) userserviceimpl
import org.springframework.stereotyp.service; import com.ssm.dao.userdao; import com.ssm.model.user; import com.ssm.service.uservice; @service ( "userservice") public userservice userservice {@resource private userdao userdao; 공개 사용자 getUserByid (사용자 사용자) {return this.userdao.finduserByid (사용자); }}6 단계 : JDBC 파일 및 로그 로그 파일을 만듭니다
(1) JDBC
jdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc/: mysql/: // localhost/: 3306/test? useunicode = true && 캐릭터 encoding = utf-8jdbc.username = rootjdbc.password = root
(2) log4J.properties
log4j.rootlogger = info, console, file # #define 로그 출력 대상을 콘솔 로그4J.appender.console = org.apache.log4j.consoleappender log4j.appender.console.target = system.out #can flexibly specife, affer format .compende.console.lopende.console.lopende.console. org.apache.log4j.patternlayout log4j.appender.console.layout.conversionpattern = [%c] -%m%n #지정된 크기에 도달 할 때 새 파일이 log4j.appender.file = org.apache.log4j.rog4j.rog4j.fileeappender #. goptory. logs/ssm.log #define 최대 파일 크기 log4j.appender.file.maxfilesize = 10MB #output so log. 디버그로 변경하면 디버그 이상의 출력 로그를 의미합니다. Log4J.appender.file.threshold = all log4j.appender.file.layout = org.apache.log4j.patternlayout log4j.appender.file.layout.conversionpattern = [%p] [%d v {yyyyyyy-mm dd v v v v v v v. HH/: mm/: ss}] [%c]%m%n7 단계 : Spring-mybatis.xml을 통합합니다
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : p = "http://www.springframework.org/schema/p"xmlns : context = "http://www.springframework.org/schema/mvc"xsi : schemalocation = "http://www.springfrfringwork.org/schema/schema/schema/schema/schema http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sprging-3.1.xtd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! <! <bean id = "propertyconfigurer"> <property name = "location"value = "classpath : jdbc.properties" /> < /bean> <!-2. 데이터베이스 연결 풀-> <bean id = "dataSource"Destroy-method = "close"> <property name = "driver className"value = "$ jdbc.driver}" /> value = "$ {jdbc.url}" /> <property name = "username"value = "$ {jdbc.username}" /> <property name = "password"vale = "$ {jdbc.password}" /> < /bean> < /bean> < /bean> < /bean> < /bean>-mybatis의 sqlsessions setession-<bean id = "sqlsessionfactory"> <!-데이터베이스 연결 풀 참조를 지정합니다-> <속성 이름 = "dataSource"ref = "dataSource"/> <!-맵핑의 자동 스캔-> <속성 이름 = "mapperlocations"value = "classpath : com/ssm/mapper/*. xml"> </bean> </bean> </bean> </bean> </bean> 스프링은 그 아래에서 클래스를 자동으로 찾을 것입니다-> <ean> <property name = "basePackage"value = "com.ssm.dao"/> <property name = "sqlsessionfactorybeanname"value = "sqlsessionActory"> </property> </bean> <!-(Transaction Management) Transaction Manager, jtatrAnsactionManager- <Bean id = ""id = "id =" " 이름 = "DataSource"ref = "DataSource"/> </bean> </beans>8 단계 : 테스트 클래스를 만듭니다
위의 단계 (LOG4J가 일치하지 않고 영향을 미치지 않음) 후에는 Spring과 MyBatis의 통합을 완료 했으므로 성공적인 테스트 코드를 작성할 수 있습니다.
테스트 클래스는 SRC/Test/Java로 설정됩니다. 테스트가 성공하면 봄과 Mybatis가 성공적으로 통합되었음을 의미합니다. 출력 정보는 Log4J를 사용하여 콘솔에 인쇄됩니다.
(1) TestMyBatis 테스트 클래스
패키지 ssm; import javax.annotation.resource; import org.apache.log4j.logger; import org.junit.test; import org.junit.runner.runwith; import org.springframework.test.context.contextConfiguration; 가져 오기; org.springframework.test.context.junit4.springjunit4classrunner; import com.ssm.model.user; import com.ssm.service.userservice;/*/*봄 테스트 환경에서 테스트를 실행하십시오*/@runwith (springJunit4classrunner.class)/*로드 된 파일의 위치를 지정하는 데 사용됩니다. 파일이로드됩니다*/ @contextConfiguration (locations = { "classPath : spring-mybatis.xml"}) public class testmybatis {@Resource (name = "userErvice") private userService userservice; @test public void test1 () {user user = new user (); user.setName ( "Zhang San"); user.setpassword ( "123"); user user1 = userervice.getuserByid (사용자); System.out.println (user1.toString ()); }}마침내! 열쇠는 배경 출력을 보는 것입니다. 이는 기적을 목격 할 때이기도합니다. 출력 객체가 출력 인 경우 구성 및 통합이 성공했음을 의미합니다!
그런 다음 SpringMVC를 통합하기 시작합니다
9 단계 : SpringMvc.xml 구성
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : p = "http://www.springframework.org/schema/p"xmlns : context = "http://www.springframework.org/schema/mvc"xsi : schemalocation = "http://www.springfrfringwork.org/schema/schema/schema/schema/schema http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sprging-3.1.xtd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! <!-스프링 미 VC가 패키지가 @controller가 @controller가 고려했다고 생각합니다. BASE-PACKAGE = "COM.SSM.CONTROLLER"/> <!-즉 IE가 AJAX를 실행하고 JSON으로 돌아올 때 파일 다운로드를 피하십시오 .-> <Bean id = "MappingJacksonHttpMessAgeConverter"> <Property Tame = "supportedMediaTypes"> <list> <value> text/html; charset = utf-8 </list> </vales> </vales> </vales> </vales>. SpringMVC 주석 기능 요청 및 주석의 매핑을 완료하기위한 pojos-> <ean> <property name = "messageconverters"> <list> <ref bean = "Mapping JacksonHttpMessageConverter"/> <!-JSON 변환기-> </list> </production> </bean> <!-<! 여기서 구성을 이해하는 것은 후속 조치의 메소드에 의해 반환 된 문자열을 자동으로 접두사하고 접미사하여 사용 가능한 URL 주소가되기 위해-> <속성 이름 = "prefix"value = "/web-inf/jsp/"/> <property name = "puffix"value = ". 파일 업로드를 사용하지 않으면 구성 할 필요가 없습니다. 물론 일치하지 않으면 구성 파일에 업로드 구성 요소 패키지를 소개 할 필요가 없습니다-> <bean id = "multipartresolver"> <!-기본 인코딩-> <속성 인코딩 = "defaultencoding"value = "utf-8" /> <!-최대 파일 크기-> <속성 이름 = "maxuploadsize"value = "1048570000" />. -> <property name = "maxInMemorySize"value = "40960"/> </bean> </beans>
10 단계 : Web.xml 파일을 구성합니다
Spring-Mybatis.xml 및 구성된 Spring-MVC 서블릿의 도입은 SSM 통합을위한 것입니다. 이전의 두 프레임 워크 통합에는 여기에서 구성이 필요하지 않았습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://java.sun.com/xml/ns/javaee" xsi : schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_3_0.xsd"3.0 ">"> "> 웹 응용 프로그램 </display-name> <!-스프링 및 myBatis 구성 파일-> <countxt-param> <param-name> contextConfigLocation </param-name> <param-value> classpath : spring-mybatis.xml </param-value> </context-param> <!-<filter- <filter-name> emtername> <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> <filter-name> encodingFilter </filter-name> <Url-pattern>/*</url-pattern> </filter-mapping> <!-스프링 리스너-> <Leater-class> org.springframework.web.context.contextLoaderListener </listener-class> <sliser- <sliser- <slister-> <slister-> <Leater-Class> org.springframework.web.util.introspectorcleanUplistener </Leater-Class> </Listener> <!-Spring MVC Servlet-> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springfrfff.weervlet. <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-mapping> <Servlet-name> springmvc </servlet-name> <!-여기에서 struts의 접미사 습관에 해당하는 *.do를 구성 할 수 있습니다-> <Url-pattern>/</url-pattern> </servlet-mapping> <welce-file-list> <compile>/index.jsp </welcome-file-list> </web-app
11 단계 최종 테스트 :
(1) 로그인을 먼저 쓰십시오
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <html> <head> <title> 사용자 로그인 : </title> </head> <body> <form action = "login"> <라벨> 사용자 이름 : </label> <input type = "text"id ""useName " 이름 = "username"> </input> <br> <br> <br> <brabel> 비밀번호 : </label> <입력 유형 = "텍스트"id = "password"name = "password"> </input> <br> <br> <입력 유형 = "value ="login "/> </form> </body> </html>
인터페이스 :
(2) UserController 작성
가져 오기 javax.servlet.http.http.httpervletrequest; import org.springframework.steretype.controller; import org.springframework.web.bind.annotation.requestmapping; import com.sssm.dao.userdao; import -compontroller; @Resource private userdao userdao; @requestmapping ( "/jsp/login") public String login (httpservletrequest request) {string username = request.getParameter ( "username"); 문자열 비밀번호 = request.getParameter ( "password"); 사용자 user = 새 사용자 (); // 데이터베이스 user.setName (username) 쿼리; user.setpassword (비밀번호); 사용자 사용자 = userdao.finduserByid (사용자); // 학생이있는 경우 로그인이 성공한 경우 (사용자! = null) {return "susscss"; } // 나는이 JSP를 쓰지 않았다. 아는 한, 당신은 자신의 반품 "err";}를 쓸 수 있습니다.(3) 마지막으로, susscss.jsp
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <html> <body> <p> 사용자 계정 비밀번호가 정확하고 로그인이 성공했습니다 </p> </body> </html>
완벽한!
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.