Основные понятия
1.1. Весна
Spring-это фреймворк с открытым исходным кодом, легкая структура разработки Java, которая появилась в 2003 году, полученная из некоторых идей и прототипов, объясненных Родом Джонсоном в его эксперте по книге «Один на один». Разработка и дизайн J2EE. Он был создан для решения сложности разработки предприятия. Spring использует базовые джавабейцы, чтобы делать вещи, которые ранее возможны только EJB. Тем не менее, использование весны не ограничивается разработкой на стороне сервера. С точки зрения простоты, тестируемости и свободной связи, любое приложение Java может извлечь выгоду из Spring. Проще говоря, Spring-это легкая инверсия управления (МОК) и сечение, ориентированная (AOP) структура контейнеров.
1.2. Springmvc
Spring MVC является последующим продуктом Springframework и был интегрирован в Spring Web Flow. Spring MVC отделяет роль контроллеров, объектов модели, диспетчеров и объектов обработчика, и это разделение облегчает их настройку.
1.3. Mybatis
Mybatis - это проект с открытым исходным кодом Apache. В 2010 году этот проект был перенесен от Apache Software Foundation в Google Code и был переименован в Mybatis. Mybatis-это структура на основе Java Persistence. Ibatis предоставляет структуры уровня стойкости, включая карты SQL и объекты доступа к данным (DAO) MyBatis устраняет ручную настройку почти всех кодов и параметров JDBC и поиск наборов результатов. Mybatis использует простые XML или аннотации для конфигурации и оригинального отображения для карты интерфейсов и Pojos Java (простые старые объекты Java) в записи в базе данных.
Шаг 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/4.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> <version>0.0.1-SNAPSHOT</version> <name>ssm Maven Webapp</name> <URL> http://maven.apache.org </url> <properties> <!-Номер весной версии-> <Spring.version> 4.0.2.release </spring.version> <!-Номер версии mybatis-> <mybatis.version> 3.2.6 </mybatis.version> <!- <slf4j.version> 1.7.7 </slf4j.version> <log4j.version> 1.2.17 </log4j.version> </свойства> <Depertiencies> <dehyedency> <groupid> junit </GroupId> <Strifactid> junit </artifactid> <version> 3.8.1 </версия> <crapope> </artifactid> <serse> 3.8.1 </версия> </artifactid> <persion>. <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> <Depected> <groupid> org.springframework </GroupId> <artifactid> Spring-oxm </artifactid> <sersion> $ {spring.version} </version> </depertive> <dehyedency> <groupid> org.springframework </GroupId> <ratifactid> spring-tx </artifactid> $ {версии> $ {версия> $ {версия> $ {версия> </depervice> <dependency> <groupid> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <serse> $ {spring.version} </version> </depertive> <Depective> <groupD> org.springFramework </GroupId> <strifactId> spring-webmvc </artifactid> spring-webmvc <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <ratifactid> spring-context-support </artifactid> <sersion> $ {spring.version} </version> </depervice> <deyedency> <groupid> org.springframework </GroupId> <ArtifactId> Spring-test </artifactid> <sersive> $ {Spring.version} </версия> </arytency> <! <groupId> org.mybatis </GroupId> <ArtifactId> mybatis </artifactid> <serse> $ {mybatis.version} </version> </vehybact> <!-Mybatis/Spring Package-> <DeyBateS> <groupD> org.mybatis </GroupD> <ratifactId> myBatis-Spring </artifactid> myBatis-Spring> <версия> 1.2.2 </version> </vehyederiny> <!-Импорт Java Ee Jar Package-> <Devendency> <groupid> javax </GroupId> <Artifactid> javaee-api </artifactid> <serse> 7.0 </version> </vehyse> <!-Импорт mysql Database Link Package-> <Group> <groupd> mys q! <ArtifactId> MySQL-Connector-java </artifactid> <sersive> 5.1.30 </version> </vehyederiation> <!-Импорт пакет JAR DBCP для настройки базы данных в ApplicationContext.xml-> <DepED> </deperency> <!-класс тегов JSTL-> <Depected> <groupId> jstl </GroupId> <straCactId> jstl </artifactid> <sersive> 1.2 </version> </depertive> <!-пакет управления файлами log-> <!-log start-> <dehyd> <groupid> log4j </GroupId> <stifactid> <! <sersive> $ {log4j.version} </version> </dependency> <!-Форматы объектов для облегчения вывода журнала-> <Degestion> <groupid> com.alibaba </GroupId> <straCactId> FastJson </artifactid> <sersive> 1.1.41 </version> </regyced> <bervident> <groupid> org.slf4. <artifactid> slf4j-api </artifactid> <sersion> $ {slf4j.version} </version> </depervice> <dependency> <groupid> org.slf4j </groupid> <artifactid> slf4j-log4j12 </artifactid> <serview> $ {slf4j.version} <//artifactid> <serview> $ {slf4j.version} <//restendence> </ressurence> <service> <mers> <!-Ввод JSON-> <Depective> <groupId> org.codehaus.jackson </GroupId> <artifactId> Jackson-mapper-asl </artifactid> <sersion> 1.9.13 </version> </resepper> <!-Загрузка компонента-> <DeyEdend> <groupId> Commons-fileUpload </GroupId> <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> </dependency> </dependencies> <buld> <finalName> ssm </finalName> </build> </project>Шаг 3: Посмотрите на общую структуру проекта, позвольте мне сначала объяснить, что у меня нет никаких родственных вещей о SpringMVC здесь, потому что я сначала интегрирую Spring-Mybatis, и при тестировании, успешно ли он, я успешно интегрирую SpringMVC.
Шаг 4: Создайте модельный класс
Пользователь открытого класса {private Int Id; Приватное название строки; Private String Password; Private String Password2; /*Предоставление методов SET и GET, метод ToString*/}Шаг 5: Создать базу данных, файл интерфейса userdao и отображения Mapper
(1) Создать очень простую таблицу
(2) Интерфейс userdao
public interface userdao {user fineuserbyid (user user);}(3) uesrmapper.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype MapperPublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <! -> <Mapper namespace = "com.ssm.dao.userdao"> <!-Информация пользователя запроса на основе идентификатора-> <!-ID: Уникально идентифицировать утверждение, которое совпадает с именем метода пользователя#{}: представляет заполнитель. Если простой параметр типа передается в #{}, имя в #{} является произвольным параметрам: тип входного параметра, который такой же, как параметр в userdao () resultype: тип результата выходного результата, который такой же, как и userdao () return-type-> <select = "findUseRbyid". resultType = "com.ssm.model.user"> select * из пользователя <где> <if test = "name! = null"> и name = #{name} </if> <if test = "пароль!Шаг 5: Создать пользовательскую службу и пользовательскую службу.
(1) Пользовательская служба
public interface userservice {public user getUserbyid (пользователь пользователя); }(2) userserviceimpl
Import org.springframework.stereotype.service; import com.ssm.dao.userdao; import com.ssm.model.user; import com.ssm.service.userservice; @service ("userervice") общедоступный пользовательский пользователь userservice {@resource private userdao userda public user getUserbyid (пользователь пользователя) {return this.userdao.finduserbyid (user); }}Шаг 6: Создание файла файла JDBC и журнала журнала
(1) JDBC.Properties
jdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc/: mysql/: // localhost/: 3306/test? useunicode = true && haremencoding = utf-8jdbc.username = rootJdbc.password = root
(2) log4j.properties
log4j.rootlogger = info, консоль, файл #define the Log Topture As Console log4j.appender.console = org.apache.log4j.consoleapdend org.apache.log4j.patternlayout log4j.appender.console.layout.conversionpattern = [%c] -%m%n #Когда размер файла достигает указанного размера, новый файл генерируется log4j.appender.file = org.apache.log4j.rollingfilepender #specify houte. logs/ssm.log #define максимальный размер файла log4j.appender.file.maxfilesize = 10mb #Output, так что журнал. Если вы измените его на отладку, это означает, что выходные журналы на DEBUG или выше Log4J.Appender.FILE.THRESHOLD = ALL LOG4J.APPENDER.FILE.LAYOUT = org.apache.log4j.patternlayout log4j.appender.file.layout.conversionpattern = [%p] [%d HH/: MM/: SS}] [%c]%m%n
Шаг 7: интегрировать Spring-mybatis.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.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.springframe.orschema. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-3.1.x.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-Автоматическое сканирование-> <Stext: Component-CANCAGAGE =" com.ssm "> <! <bean id="propertyConfigurer" > <property name="location" value="classpath:jdbc.properties" /> </bean> <!-- 2. Database connection pool--> <bean id="dataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value = "$ {jdbc.url}" /> <name = "username" value = "$ {jdbc.username}" /> <name = "password" value = "$ {jdbc.password}" /> < /bean> <!-интегрировать пружину и mybatis для управления mybatis 'sqlsessionfactory sessionfactory factory faintory fair strance-> <> <bean-> <> <bean-> <> <bean-> <> <> <baean-session-sessionforcefactory. id = "sqlSessionFactory"> <!-указать ссылку на пул подключений к базе данных-> <name = "dataSource" ref = "dataSource"/> <!-Автоматическое сканирование файлов mapping.xml-> <свойство = "mapperlocations" value = "classpath: com/ssm/mapper/*. xml"> </bean> <! Расположен, Spring автоматически найдет класс под ним-> <Bean> <name = "basepackage" value = "com.ssm.dao"/> <name = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"> </property> </bean> <! <name = name = "dataSource" ref = "dataSource"/> </bean> </beans>Шаг 8: Создайте тестовый класс
После вышеуказанных шагов (log4j не совпадает и не имеет никакого эффекта), мы завершили интеграцию Spring и Mybatis, поэтому мы можем написать кусок тестового кода, чтобы попробовать, был ли он успешным.
Тестовый класс установлен в SRC/Test/Java. Если тест успешно, это означает, что Spring и Mybatis были успешно интегрированы. Выходная информация напечатана в консоли с использованием log4j.
(1) Testmybatis Test Class
пакет ssm; import javax.annotation.resource; import org.apache.log4j.logger; import org.junit.test; import org.junit.runner.runwith; импорт org.springframework.test.context.contextconfiguration; импорт org.springframework.test.context.contextconfiguration; org.springframework.test.context.junit4.springjunit4classrunner; import com.ssm.model.user; import com.ssm.service.userservice;/*Пусть тестовый запуск в среде Spring Test*/@@runwith (Springjunit4clanner.class)/* Загружен*/ @contextConfiguration (locations = {"classPath: Spring-mybatis.xml"}) открытый класс testmybatis {@resource (name = "userservice") private userservice userservice; @Test public void test1 () {user user = new user (); user.setName ("Zhang San"); user.setpassword ("123"); User user1 = userservice.getuserbyid (user); System.out.println (user1.toString ()); }}наконец! Ключ должен посмотреть на фоновый вывод, который также является временем, чтобы засвидетельствовать чудеса. Если выходной объект является выводом, это означает, что ваша конфигурация и интеграция успешны!
Затем мы начинаем интегрировать Springmvc
Шаг 9: Настройка Springmvc.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.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.springframe.orschema. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-3.1.x.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <! base-package = "com.ssm.controller"/> <!-Избегайте файлов загрузки, когда IE выполняет AJAX и возвращается в JSON-> <Bean ID = "MappingJackshttpmessageConverter"> <Foctive = "Поддержкамедедиатип"> <Sipe> <value> text/html; charset = uTF-8 </value> <//list> <//list> <//list> <//list> <//html; charset = uTF-8 </valuetypes Функция аннотации SpringMVC для завершения отображения запросов и аннотаций Pojos-> <Bean> <name = "messageConverters"> <Sist> <ref bean = "mappingjacksonhttpmessageConverter"/> <!-json converter-> </list> </property> </bean> <! <!-Мое понимание конфигурации здесь состоит в том, чтобы автоматически префикс и суффикс. Строка, возвращаемой методом последующего действия, чтобы стать доступным адресом URL-> <name = name = "prefix" value = "/web-inf/jsp/"/> <name = "Суффикс" value = ". Jsp"/> </bean> <!-конфигурация. Если вы не используете загрузку файлов, вам не нужно ее настраивать. Конечно, если вы не совпадаете, то нет необходимости внедрять пакет компонентов загрузки в файле конфигурации-> <Bean Id = "MultipRESOLVER"> <!-Кодирование по умолчанию-> <name = "defaultEncoding" value = "utf-8" /> <!-Максимальный размер файла-> <свойство = "maxuploadsize" value = "1048776.> <> /name" /"maxuploadize" value = "1048776" /> <property in name = "maxuploadize" value = "104876" /> <property in name = "maxuploadize". Memory -> <name = 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_0.x.xcsd". Созданное веб-приложение </display-name> <!-файлы конфигурации Spring и Mybatis-> <Stext-Param> <param-name> contextConfiglocation </param-name> <value> classpath: spring-mybatis.xml </param-value> </context-param> <!-incoding filter-> <FivleTter> <Filter-name> EncoD-name> iname> iname> iname> </filter-name> </filter-name> </filter-name> </filter-name> </filter-name> </incodme> </incoding-name> </incoding-name> <! <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> <url-pattern>/*</url-pattern> </filter-mapping> <!-Spring Slierer-> <lillerer-class> org.springframework.web.context.contextloaderListener </stirligher-class> </slirler> <! <lloader-class> org.springframework.web.util.introspectorCleanuplistener </stirler-class> </levesser> <!-Spring MVC Servlet-> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.spramework.web.servled.dispatchleshlase> <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> <!-Здесь вы можете настроить *.do, соответствующая привычке суффиксов стопор-> <url-pattern>/</url-pattern> </servlet-mapping> <selcopply-file-list> <welcess-file>/index.jsp </werveding> </werveding-file-list> </web --pape>/index.jsp </welcome> </werveding-file> </web-app-app>/web-app-app>/web-app>/index.jsp.
Шаг 11 Финальный тест:
(1) Напишите login.jsp сначала
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <html> <head> <Title> Пользовательский вход: </title> </head> <body> <form action = "login"> <babel> Имя пользователя: </label> <input type = "text" us action "use =" us ection ". name = "username"> </input> <br> <br> <brabel> Пароль: </label> <input type = "text" id = "password" name = "password"> </input> <br> <br> <input type = "Vade" value = "login"/> </form> </body> </html>
интерфейс:
(2) Написание USERCONTROLLER
Импорт javax.servlet.http.httpservlectrequest; import org.springframework.steretype.controller; import org.springframework.web.bind.nanotation.requestmapping; imporm.ssm.dao.userdao; importcomm.model.user @Resource private userdao userdao; @Requestmapping ("/jsp/login") public String login (httpservlectrequest) {string username = request.getParameter ("username"); String password = request.getParameter ("пароль"); Пользователь пользователь = новый пользователь (); // Запросить базу данных user.setName (имя пользователя); user.setpassword (пароль); Пользователь пользователей = userdao.finduserbyid (user); // Если есть студенты, это означает, что логин успешен, если (пользователи! = Null) {return "susscss"; } // Я не писал этот JSP, если вы знаете, вы можете написать свой собственный возврат "err";}}(3) Наконец, susscss.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <html> <body> <p> Пароль учетной записи пользователя правильный, вход в систему успешно </p> </body> </html>.
Идеальный!
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.