В прошлом году у меня было немного понимания того, насколько удобно и быстро была разработана Springboot в различных каналах. Но в то время я не усердно учился. В конце концов, я чувствовал, что я не очень опытен в стойках и Springmvc. Однако, прочитав много представлений о Springboot, это было не так сложно, как я думал, поэтому я начал готовиться к изучению Springboot. В свободное время, прочитав «Springboot Faction Combat» и некоторые блоги Masters о Springboot, я начал писать свой первый проект Springboot. После возможности реализовать функции CRUD в Springboot с некоторой простой разработкой интерфейсов в стиле RESTFUL, этот пост был создан.
Введение в Springboot
Spring Boot - это новая структура, предоставленная ключевой командой. Он предназначен для упрощения начального процесса строительства и разработки новых весенних приложений. Структура использует определенный способ его настройки, так что разработчикам больше не нужно определять конфигурации шаблона.
Проще говоря, вы можете быстро разработать проект с несколькими банками и некоторыми простыми конфигурациями.
Если я хочу просто разработать внешний интерфейс, то мне нужен только следующий код.
Основная программа начинается
@SpringBootApplicationPublic Class Application {public static void main (String [] args) {SpringApplication.Run (Application.Class, Args); }}Контрольный слой
@Restcontrollerpublic class helloworldcontroller {@requestmapping ("/hello") public String index () {return "Hello World"; }}После успешного запуска основной программы напишите контрольный уровень, а затем введите http: // localhost: 8080 // Привет в браузере, чтобы просмотреть информацию.
Я чувствую, что использование Springboot для разработки программ очень просто!
В практических словах Спрингбаута:
Здесь нет конфигурации, нет web.xml, нет инструкций по сборке и даже сервера приложений, но это все приложение. Springboot выполнит всю логистику, необходимую для выполнения приложения, и вам просто нужно получить код приложения.
Разработать спокойный сервис на основе Springboot
Перед разработкой программы вы должны сделать некоторые подготовки
Создать базу данных `springboot`; используйте` springboot`; Drop Table, если существует `t_user`; создать таблицу` t_user` (`id` int (11), а не null auto_increment Comment 'Id',` name` varchar (10) defall Null Comment 'name', `‘ int (2) Комментарий null nul Auto_increment = 12 default charset = utf8;
Самая основная банка Springboot
Spring-Boot-Starter: модуль CORE, включая поддержку автоматической конфигурации, ведение журнала и YAML;
<parent> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-boot-Starter-parent </artifactid> <sersive> 1.5.9.Release </version> <venustaryPath/> </parent> <properties> <project.build.sourceending> utf-8 </project.build.build.sourceencoding> utf-8 <java.version> 1.7 </java.version> <mybatis-spring-boot> 1.2.0 </mybatis-spring-boot> <mysql-connector> 5.1.39 </mysql-connector> </properties> <deyedencies> <dehyed> <groupid> org.spramework.boot> <strifactid> Spring-Boot-Starter-web </artifactid> </deperency> <depervice> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymelef </artifactid> </jepertive> <dehyed> <groupd> org.sprimework.boot> </gypect> <dyyedinence> <groupd> org.spramework.boot> <ArtifactId> Spring-Boot-Starter-data-jpa </artifactid> </depervice> <dependency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-devtools </artifactid> <putainal> true </notional> </deperty> <dery> <groupd> <Artifactid> Spring-Boot-Starter-test </artifactid> <cracpe> test </scope> </dependency> <!-Spring Boot Mybatis зависимость-> <Depoydency> <groupId> org.mybatis.spring.boot </GroupId> <artifactid> mybatis-spring-starter </artifactid> <artifactid> mybatis-spring-starter </artifactid> <trifactid> mybatis-spring-spring. <version>${mybatis-spring-boot}</version> </dependency> <!-- MySQL connection driver dependency--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector}</version> </dependency> </dependency> <build> <plugins> <!-Используйте плагин Springboot, чтобы использовать приложение модуля Spring-Boot-Devtools. При изменении файла в панели класса он автоматически перезагрузится! -> <bricin> <groupid> org.springframework.boot </GroupId> <artifactId> пружина-boot-maven-plugin </artifactid> <ponfiguration> <fork> true </fork> </configuration> </placin> </placins> </build> com.pancm.web - слой контроллера
com.pancm.dao - уровень работы данных DAO DAO
com.pancm.bean - класс сущности
com.pancm.bean.service - слой бизнес -логики
Приложение - класс запуска приложения
Application.properties - Файл конфигурации приложения, конфигурация будет автоматически считываться с помощью запуска приложения
Как правило, нам нужны некоторые пользовательские конфигурации, такие как настройка конфигурации соединения JDBC, где мы можем использовать Application.properties для его настройки. Фактическая конфигурация источника данных должна подлежать каждому.
## Конфигурация источника данных spring.datasource.url = jdbc: mysql: // localhost: 3306/springboot? useunicode = true & haremencoding = utf8spring.datasource.username = RootsPring.Datasource.passWord = 123456spring.Datasource.driver-name = com.mysv.jdiver.jdbr. MyBatis Configuration# Configure как com.pancm.bean Point на путь пакета класса Entity. mybatis.typealiasespackage = com.pancm.bean# Настройка пакета Mapper под пути класса. * означает, что все файлы XML будут отсканированы. mybatis.mapperlocations = classpath/: mapper/*. xml
Пришло время прийти к ключевому коду.
Мы начнем с написания класса POJO, соответствующего таблице T_USER в базе данных.
Код выглядит следующим образом
Пользователь открытого класса { / ** номер* / private int id; / ** Имя*/ Private String Имя; / ** возраст*/ частный int возраст; public user () {} public class user { / ** номер* / private int id; / ** Имя*/ Private String Имя; / ** возраст*/ частный int возраст; public user () {} // Getter и Setter опущен}В предыдущем уровне DAO как Hibernate, так и Mybatis могли использовать аннотации или файлы конфигурации Mapper. Здесь мы используем Spring's JPA для завершения CRUD.
иллюстрировать:
Как правило, существует два способа реализации CRUD и базы данных:
Первый - это конфигурация Mapper XML.
Второй тип - использовать аннотации, @Insert, @Select, @Update, @Delete и другие аннотации. В этой статье используется второй тип
Импорт org.apache.ibatis.annotations.delete; импорт org.apache.ibatis.annotations.insert; импорт org.apache.ibatis.annotation.mapper; импорт org.apache.ibatis.annotation.result; импорт org.apache.ibatis.annotations.results; org.apache.ibatis.annotations.update; import org.springframework.data.repository.query.param; import com.pancm.bean.user; @mapperpublic interface userdao { / *** Добавлены данные пользователя* / @insert ("INSERT INTO T_USER (ID, AGE) (#{id},#{name},#{age}) ") void adduser (пользователь пользователя); / *** Модификация пользовательских данных*/ @Update ("Обновление t_user set name =#{name}, age =#{age} где id =#{id}") void updateUser (пользователь пользователя); / *** Удаление данных пользователя*/ @Delete ("Удалить из t_user, где id =#{id}") void deleteUser (int id); / *** Информация о пользователе запроса на основе имени пользователя**/ @select ("Select Id, имя, возраст от t_user") // return Map Set Result Set @Results ({@Result (Property = "id", column = "id"), @Result (property = ", column =" name "), @Result (Property =" Age ", Column"), vecop at vecploy "), stry -stry"), stry "), stry"), "),"), "),"), "),"), "),"), "),"), "),"), "),"), "),") имя пользователя); / *** Запрос информации пользователя на основе идентификатора пользователя**/ @select («Выбрать идентификатор, имя, возраст от t_user») пользователь findbyid (@param ("id") int userid); / *** Запрос информации пользователя на основе возраста пользователя*/ @select ("Выберите идентификатор, имя, возраст от t_user, где age = #{userage}") пользователь findbyage (int userage);}Личное понимание аннотаций, используемых этим интерфейсом:
Mapper: добавлена это аннотацию в интерфейс, чтобы указать, что этот интерфейс является CRUD, реализованным на основе аннотации.
Результаты: возвращаемый набор результатов карты, свойство представляет поля пользовательского класса, а столбец представляет поля соответствующей базы данных.
PARAM: поле для условия SQL.
Вставьте, выберите, обновляйте, удаляйте: набирайте, изменяйте и удаляйте соответствующие базы данных.
Это в основном то же самое, что и Hibernate и Mybatis.
Код заключается в следующем:
интерфейс
Import com.pancm.bean.user;/**** Заглавное: userservice* Описание: Пользовательский интерфейс* Версия: 1.0.0* @author pancm* @date 9 января 2018 г.*/public userservice {/*** Добавить пользователь* @param пользователь* @return*/boolean adduser (пользователь пользователя); / ** * изменить пользователь * @param user * @return */ boolean updateUser (пользователь пользователя); / ** * Удалить пользователь * @param id * @return */ boolean deleteuser (int id); / *** Запрос информации пользователя на основе имени пользователя* @param username*/ user finducerbyname (string username); / *** Запрос информации пользователя на основе идентификатора пользователя* @param userId*/ user findUserbyId (int userId); / *** Запрос информации пользователя на основе идентификатора пользователя* @param userage*/ user finducerbyage (int userage);}Класс реализации
Импорт org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.service; импорт com.pancm.bean.user; import com.pancm.dao.userdao; import com.pancm.service. @author pancm* @date 9 января 2018 г.*/ @servicepublic class userserviceimpl реализует userservice {@autowired private userdao userdao; @Override public boolean adduser (пользователь пользователя) {boolean flag = false; try {userdao.adduser (user); flag = true; } catch (Exception e) {e.printstackTrace (); } вернуть флаг; } @Override public boolean updateUser (пользователь пользователя) {boolean flag = false; try {userdao.updateuser (user); flag = true; } catch (Exception e) {e.printstackTrace (); } вернуть флаг; } @Override public boolean deleteUser (int id) {boolean flag = false; try {userdao.deleteuser (id); flag = true; } catch (Exception e) {e.printstackTrace (); } вернуть флаг; } @Override public user inducerbyname (string username) {return userdao.findbyname (username); } @Override public user indueSerbyId (int userId) {return userDao.findbyId (userId); } @Override public user finducerbyage (int userage) {return userdao.findbyage (userage); }}Управляющий слой очень похож на SpringMVC, но он намного проще, чем это.
Мое личное понимание аннотации об контрольном слое заключается в следующем:
RestController: методы в классе по умолчанию будут возвращены в формате JSON.
Запрос: конфигурация пути интерфейса.
Метод: формат запроса.
RequestParam: запрос параметров.
Конкретная реализация заключается в следующем:
Import org.springframework.beans.factory.annotation.autowired; импорт org.springframework.web.bind.annotation.requestmapping; импорт org.springframework.web.bindtation.Requestmethod; импорт org.spramework.web.bindatation.RequestAt.RequestAt.RequestAtmate.RequestAt.RequestMethod; Import org.spramework.web.bindatation.Requestmethod; org.springframework.web.bind.annotation.RestController;import com.pancm.bean.User;import com.pancm.service.UserService;/** * * Title: UserRestController* Description: * User Data Operation Interface* Version:1.0.0 * @author pancm* @date January 9, 2018*/@RestController@RequestMapping(value = "/api/user") public class userrestcontroller {@autowired private userservice userservice; @Requestmapping (value = "/adduser", method = requestMethod.post) public boolean adduser (пользователь пользователя) {system.out.println ("Начать добавление ..."); return userservice.adduser (пользователь); } @RequestMapping (value = "/updateUser", method = requestMethod.put) public boolean updateUser (пользователь пользователя) {system.out.println ("start to update ..."); return userservice.updateuser (пользователь); } @RequestMapping (value = "/deleteUser", method = requestMethod.delete) public boolean delete (@requestparam (value = "username", обязательно = true) int userId) {System.out.println ("Start Delete ..."); return userservice.deleteuser (userid); } @RequestMapping (value = "/userName", method = requestMethod.get) public user findbyusername (@requestparam (value = "username", обязательный = true) string username) {system.out.println ("Start Query ..."); return userservice.finduserbyname (имя пользователя); } @RequestMapping (value = "/userId", method = requestMethod.get) public user findbyUserid (@RequestParam (value = "userId", обязательный = true) int userId) {System.out.println ("Start Query ..."); return userservice.finduserbyid (userid); } @RequestMapping (value = "/userage", method = requestMethod.get) public user findbyUserage (@RequestParam (value = "userage", обязательный = true) int userage) {System.out.println ("Start Query ..."); return userservice.finduserbyid (userage); }}Springapplication - это класс, используемый для запуска приложений Spring из основного метода.
По умолчанию он выполняет следующие шаги:
1. Создайте подходящий экземпляр ApplicationContext (в зависимости от ClassPath).
2. Зарегистрируйте CommandlinePropertySource для использования параметров командной строки в качестве свойств пружины.
3. Обновите контекст приложения и загрузите все синглтонские бобы.
4. Активируйте все бобы commandlinerunner.
Начните этот класс непосредственно с помощью Main, и Springboot автоматически настраивает его.
PS: Даже сейчас я все еще думаю, что это действительно удивительно.
Некоторые аннотации для этого класса объясняются. :
SpringbootApplication: включите сканирование компонентов и автоматическую конфигурацию.
MappersCan: конфигурация пакета пакета класса интерфейса Mapper
Код заключается в следующем:
Импорт org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; импорт org.springframework.boot.autoconfigure.springbootapplication;/**** 2018*/@SpringbootApplication@mapperscan ("com.pancm.dao") открытый класс {public static void main (string [] args) {// запустить встроенный Tomcat и инициализируйте среду Spring и ее Spring Components SpressApplication.run (Application.Class, args); System.out.println («Программа работает ...»); }}После написания кода мы проводим тест кода.
После начала приложения используйте инструмент Postman для тестирования интерфейса.
Результаты теста следующие:
Здесь используется только один Get и Post Test. Фактические методы были протестированы, но я чувствую, что нет необходимости придерживаться карты.
Я поставил проект на GitHub:
https://github.com/xuwujing/springboot
Суммировать
Выше приведено введение редактора по разработке услуги Restful, основанной на Springboot для реализации функции добавления, удаления, изменения и проверки. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!