Эта статья представляет метод Maven для создания своего первого бэкэнда Java. Это совместно с вами. Детали следующие:
1. Знание обратно
Я подробно объяснил в последнем выпуске того, как использовать Maven для создания вашего первого проекта. Предыдущая ссылка; Сегодня я буду использовать SpringMVC и Mybatis Frameworks для создания собственного бэкэнда Java.
2. Необходимые приготовления
①intellij Идея, среда Maven хорошо построена
②familiar с Mybatis, Springmvc и другими рамками
③crecation базы данных MySQL
3. Общая схема архитектуры
4. Конкретные шаги
①configure пакет JAR для использования в pom.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <!-Лицензировано для Apache Software Foundation (ASF) в соответствии с одним или несколькими лицензионными соглашениями. См. Файл уведомления, распространяемый с этой работой для получения дополнительной информации о владении авторским правом. ASF лицензирует этот файл вам по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с лицензией. Вы можете получить копию лицензии по адресу http://www.apache.org/licenses/license-2.0, если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распределенное по лицензии, распределяется на «как есть», без каких-либо гарантий или условий любого вида, явного или подразумеваемого. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии .--> <!-$ id: pom.xml 642118 2008-03-28 08: 04: 16Z Reinhard $-> <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. <dolidyVersion> 4.0.0 </modelVersion> <Cackaging> WAR </упаковка> <mame> yakei </name> <groupid> com.yakei </GroupD> <ratifactid> yakei </artifactid> <seriation> 1,0-snapshot </version> <зависимости> <Зависимость> <! <groupId> junit </GroupID> <ArtifactId> junit </artifactid> <sersion> 4.11 </version> <cracpe> test </scope> </vehyederian> <!-Полные зависимости проекта-> <!-1. Журнал журналов Java включает в себя: SLF4J, log4j, Logback, Common-Logging SLF4J: IS Specization/Реализация журнала интерфейса: log4j, logback, обычное использование: slf4j+logback-> <dependency> <groupid> org.slf4j </GroupD> <artifactid> slf4j-api </artifactid >.7. </depervice> <dependency> <groupid> ch.qos.logback </GroupId> <artifactId> rougback-core </artifactid> <sersive> 1.1.1 </version> </grose> <!-Реализация интерфейса SLF4J и интеграция-> <Depective> <groupId> CH.Qos.Logback </GroupID> <ArtifactId> </artifactid> </artifactid> </artifactid> </artifactid> <версия> 1.1.1 </version> </gethyederian> <!-1. Database-related dependencies--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> <scope>runtime</scope> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <sersion> 0.9.1.1 </version> </dependency> <!-2.dao Framework: Mybatis зависимость-> <зависимость> <groupid> org.mybatis </groupid> <strifactid> mybatis </artifactid> <serse> 3.3.0 </ression> </vemysidence> <! --- Сама MyBatis. <groupId> org.mybatis </GroupId> <ArtifactId> mybatis-spring </artifactId> <sersive> 1.2.3 </version> </depervice> <!-3.servlet-связанные зависимости-> <Dependency> <sression>1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1. <groupId> jstl </GroupId> <ArtifactId> jstl </artifactid> <sersive> 1.2 </version> </dependency> <dependency> <groupid> com.fasterxml.jackson.core </GroupId> <ratifactid> jackson-databind </artifactid> <serview> 2.5.4 </версия> </repertive> </artifactid> <serview> 2.5. <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <!--4:spring dependencies--> <!--1)spring core dependencies--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <sersion> 4.1.7.release </version> </vehyederiation> <dependency> <groupid> org.springframework </GroupId> <strifactid> Spring-beans </artifactid> <sersion> 4.1.7.releas <версия> 4.1.7.Release </version> </dependency> <!-2) Spring DAO-зависимости слоя-> <Dependency> <groupId> org.springframework </GroupId> <strifactId> Spring-jdbc </artifactid> <версия> 4.1.7.Release </version> </зависимость> <зависимость> <Group> org.spring forryforryforres> <group-org. <artifactId>spring-tx</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--3)springweb-related dependencies--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.7.RELEASE</version> </dependency> <!--4)spring test-related dependencies--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <версия> 4.1.7.release </version> </vehysency> </dependencies> </project>
Он охватывает ряд пакетов JAR, таких как Spring, Mybatis и т. Д. Этот процесс аналогичен Android, добавляющему сторонние зависимости в сборку. Gradle, и принципы являются последовательными.
2. Создайте два каталога в каталоге ресурсов: Mapper, Spring
Mapper: Mapper - это отображение структуры Mybatis, и его функция заключается в использовании картирования файла в слое DAO; Здесь я создал карту user.xml:
Красная часть должна быть обращена внимания. Верхний - это путь к карту слоя DAO, а второй - тип объекта возврата. Я опубликую код здесь:
<! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> mapper namesspace =" com.dajiu.dao.userdao "> <! то есть напишите наши операторы SQL для методов в интерфейсе DAO-> <SELECT ID = "GetAll" ResultType = "com.dajiu.bean.user"> select * from user </select> <select id = "getLogin" revelodtype = "com.dajiu.bean.user"> select * из пользователя, где name = #wame} и # # # # # #
пружина: в основном загрузите файл конфигурации пружины
1.spring-dao.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: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spramework.org/schema/beans/springbeans.s.xsspring.s.s.xspring.s.xspring.s.spring.s.spring.s.s.spring.s.spring.s.spring.s.spers.s.spring.s.spring.s.spers.s.spers.s.spring.s.spers.s.spers.s.spersbembembems. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-Интеграция конфигурации mybatis process 1. Настройте параметры, связанные location = "classpath: jdbc.properties"/> <!-2. Пул соединений базы данных-> <bean id = "dataSource"> <!-Configure Pool Pool Properties-> <name = "DriverClass" value = "$ {Driver}" /> <!-базовые свойства URL, пользователь, пароль-> <property name = "jdbcurl" value = "$ {url}" /> <value = "value =" $ "$" $ "$" $ "$" $ "$" $ " /$" $ " /" /verame " /" /> " /veramer" /" /$" name = "password" value = "$ {пароль}"/> <!-c3p0 частное свойство-> <name = "maxpoolsize" value = "30"/> <property name = "minpoolsize" value = "10"/> <!-Не автоматически совершается после закрытия соединения-> <proportize = "autocomtonclose ' name = "checkouttimeout" value = "10000"/> <!-Количество повторной попытки, когда соединение не удалось-> <name = "acpireretryTempts" value = "2"/> </bean> <!-Конвенция больше, чем конфигурация-> <!-3.configuration of sqlSessionFact-объект-> <Bean Id = "SqlSessionFactory"> <StepressiveSefative, что STIPOWATERITIORESIS, инит. --> <!--Inject database connection pool --> <property name="dataSource" ref="dataSource"/> <!--Configuration of mybatis global configuration file: mybatis-config.xml--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!--Scan the entity package, use alias, use multiple names; Отдельный-> <name = name = "typealiasespackage" value = "com.dajiu.bean"/> <!-сканирование файла конфигурации SQL: файл XML, требуемый Mapper-> <name = "mapperlocations" value = "classpath: mapper/*. xml"/> </bean> <! В пружинном контейнере-> <Bean> <!-Inject SQLSessionFactory-> <name = "sqlSessionFactoryBeanName" value = "sqlSessionFactory"/> <!-Дайте интерфейс DAO для отсканирования-> <propatement = "basepackage" value = "com.dajiu.dao"/> </bean> </beans> </beans> </beans> </beans> </beans> </beans> </beanМеста, чтобы обратить внимание на:
Подключитесь к базе данных:
Настройте глобальный класс Mybatis-Config и Bean, все файлы под Mapper
Настройка DAO
2.spring-service.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: context = "http://www.springframework.org/schema/context" xmlns: tx = "http://www.springframework.org/schema/tx" xsi: schemalocation = "http://www.springframe. http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd "> <!-сканировать все типы аннотаций в пакете обслуживания-> <Контекст: Component-scan base-cackage =" com.dajiu. manager--> <bean id="transactionManager"> <!--Inject database connection pool--> <property name="dataSource" ref="dataSource"/> </bean> <bean id="date"></bean> <!--Configure annotation-based declarative transactions to manage transaction behavior by default-> <tx:annotation-driven transaction-manager="transactionManager"/></beans>
Обратите внимание на местный район:
Настройка службы
3. Spring-web.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: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://wwww.spramemema. http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-Конфигурация Spring Mvc-> <!-1, outbine Springmvc Andation Mode A. Автоматически регистрируйте по умолчанию, анонация, AnnotationMethodHandlerAdapter b. По умолчанию представлена серия функций: привязка данных, формат чисел и дат@NumberFormat,@DateTimeFormat C: XML, JSON по умолчанию. Конфигурация сервлета по умолчанию статических ресурсов-> <!-1). Добавлена статическая обработка ресурсов: JS, GIF, PNG 2). Разрешить "/" сделать общее отображение-> <MVC: по умолчанию-servlet-handler/> <!-3: настройка JSP для отображения ViewResolver-> <Bean> <name = "viewClass" value = "org.springframework.web.servlet.view.jstlview"/> <prefix = "prefix" value = "web-inf. value = ". jsp"/> </bean> <!-4: сканирование бобов, связанных с веб-сайтом-> <Контекст: компонент-сканирование Base-package = "com.dajiu.controller"/> <mvc: ресурсы mapping = "/**/*. mapping = "/**/*. CSS" location = "/"/> <mvc: ресурсы mapping = "/**/*. png" location = "/"/> <mvc: ресурсы mapping = "/**/*. gif" location = "/"/> </beans>
Обратите внимание на местный район:
Настройка контроллера
5. Логическая реализация (принимая пользователя в качестве примера)
① Первый определение класса пользователя в бобах
Пакет com.dajiu.bean;/*** Создан Чжансингом на 2017/4/7. */public class user {private int id; Приватное название строки; Private String Password; public int getId () {return id; } public void setId (int id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; }}② Затем определите интерфейс userdao в DAO
Пакет com.dajiu.dao; import com.dajiu.bean.user; import org.apache.ibatis.annotation.param; import org.springframework.stepytype.repository; импорт java.util.list;/*** Создан Zhangxing на 2017/4/7. */@Repositorypublic interface userdao {list <user> getall (); Пользователь getLogin (@param ("name") String name, @param ("password") String password);}Сопоставление слоя DAO в user.xml
③next, чтобы объявить интерфейс в сервисе
пакет com.dajiu.service; import com.dajiu.bean.user; импорт java.util.list;/*** Создан Zhangxing на 2017/4/7. */public interface userservice {list <user> getAll (); Пользователь getLogin (name String, String password);}④ Затем реализуйте логику интерфейса в service.impl
пакет com.dajiu.service.impl; import com.dajiu.bean.user; import com.dajiu.dao.userdao; импорт com.dajiu.service.userservice; импорт org.spramework.beans.factory.annotation.autowired; java.util.list;/*** Создан Чжансингом на 2017/4/7. */ @Service ("userservice") public class userserviceimpl реализует userservice {@autowired userdao userdao; public list <user> getall () {return userdao.getall (); } public user getLogin (string name, string password) {return userdao.getlogin (name, password); }}@Autowired здесь эквивалентен созданию нового экземпляра
⑤implement Реальная логика фонового вызова в контроллере
пакет com.dajiu.controller; import com.dajiu.bean.user; import com.dajiu.service.userservice; import org.springframework.beans.factory.annotation.autowired; импорт org.springframe.stepolype.contory. org.springframework.web.bind.annotation.requestmapping; импорт org.springframework.web.bind.annotation.responsebody; импорт java.util.hashmap; импорт java.util.list; импорт java.util.map;/*** Создан zhangxing на 2017/4/7. */@Controller@requestMapping ("/blog") открытый класс usercontroller {@autowired userservice userservice; @Requestmapping ("/getUser") @Responsebody public map <string, object> getUser () {map map = new hashmap (); Список <user> list = userservice.getall (); map.put ("user", list); map.put ("status", 1); map.put ("успех", правда); карта возврата; } @RequestMapping ("getLogin") @Responsebody public map <string, object> getLogin (string name, string password) {map map = new hashmap (); Пользователь пользователь = userservice.getlogin (имя, пароль); map.put («пользователь», пользователь); map.put ("islogin", true); map.put ("status", 1); карта возврата; }}Здесь @Requestmapping ("" ") представляет доступный путь отображения, @ResponseBody представляет результат запроса, напечатанный в формате данных JSON, и @Controller представляет, что до тех пор, пока доступный путь картирования корневой карты доступна, контроллер будет вызван непосредственно;
Теперь давайте поможем вам понять ваши идеи: первая запросить USERCONTROLLER ---> userservice ----> userserviceimpl ----> userDao ---> user.xml (mapper) ----> bean (пользователь)
6. Настройте сервер Tomcat
① Нажмите кнопку «Зеленый треугольник» в правом верхнем углу и нажмите «Редактировать конфигурацию»
②click the + знак и выберите Tomcat
③ Выберите местный
④ Заполните в соответствующей конфигурации
⑤click развертывание, нажмите на знак + и выберите артефакт
Затем выберите первый пункт и продолжайте входить
Таким образом, весь ваш проект будет завершен, а следующий шаг - посетить
Ладно, сегодня объяснение SpringMVC и Mybatis Building Java Backend закончилось.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.