摘要:第一步首先創建一個簡單的工程,這里也可以用上的模版。第二步建立需要用到的數據庫表,及數據。第三步建立項目的各個模塊,實現相應的邏輯。模塊就是一個簡單的調用方法,代碼如下模塊代碼如下參數為必填項至此,整個項目創建完成,然后就是啟動測試了。
一直用SpringMVC+Spring開發,雖然用了這么久,但對里面繁瑣的配置還是很頭疼,這種情況改用Springboot,無疑是個很好的選擇。廢話不多說,直接介紹自己如何使用的,在這之前還是有必要介紹下接下來的這個案例,這是一個入門級的Springboot應用案例,實現訪問一個測試接口,獲取到數據庫中數據。
第一步:首先創建一個簡單的MAVEN工程,這里也可以用IDEA上的MAVEN模版(maven-archetype-webapp)。然后就是在pom.xml中引入Springboot相關的依賴,這里先默認繼承spring-boot-starter-parent(實際項目往往需要定義自己的)。
4.0.0 com.zyk testSpringboot war 1.0-SNAPSHOT testSpringboot Maven Webapp http://maven.apache.org org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE UTF-8 UTF-8 1.7 yyyyMMdd org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-log4j 1.3.8.RELEASE net.sf.json-lib json-lib 2.4 jdk15 org.springframework.boot spring-boot-starter-test test testSpringboot org.springframework.boot spring-boot-maven-plugin
這里使用的是JPA連接數據庫,數據庫是mySql,數據庫配置在application.properties中
#數據庫配置 spring.datasource.url=jdbc:mysql://192.168.8.189:3306/test spring.datasource.username=root spring.datasource.password=root server.port=8080 #項目訪問路徑 server.context-path=/testSpringboot
使用的log4j來記錄日志,配置文件為log4j.properties
#------------------------------------------------------------------- log4j.rootCategory=INFO, A1, Daily #log4j.logger.com.dayangit=DEBUG log4j.logger.org.hibernate.hql.internal.ast.HqlSqlWalker=ERROR #------------------------------------------------------------------- #A1 system output log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=[%d{HH:mm:ss.SSS}] [%t] %m%n #------------------------------------------------------------------- # Daily log4j.appender.Daily.encoding=GBK log4j.appender.Daily=org.apache.log4j.DailyRollingFileAppender log4j.appender.Daily.File=/testSpringboot/testSpringboot.log log4j.appender.Daily.DatePattern="."yyyy-MM-dd log4j.appender.Daily.layout=org.apache.log4j.PatternLayout log4j.appender.Daily.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss.SSS}][%t]%m%n
這里還要說一下spring-boot-maven-plugin,這是為了將整個項目打包成可以直接運行的jar包,既然可以直接運行提供接口,也說明了springboot的另一個特性,內部自帶tomcat。
pom.xml完成后,重新加載后就可以了。
第二步:建立需要用到的數據庫表,及數據。上面application.properties中已經規定了數據庫名,在此基礎上新建自己要用到的表及數據。我這里的建表語句是
CREATE TABLE `testspringboot` ( `id` VARCHAR(36) NOT NULL, `name` VARCHAR(50) DEFAULT NULL, `text` VARCHAR(2000) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
插入數據
insert into `testspringboot` (`id`, `name`, `text`) values("id1","zyk","哈哈哈哈哈哈哈哈哈哈"); insert into `testspringboot` (`id`, `name`, `text`) values("id2","yjh","呵呵呵呵呵呵呵呵呵呵呵呵");
到此數據庫部分完成。
第三步:建立項目的各個模塊,實現相應的邏輯。我這里就用了四個模塊:bean,controller,service,dao,還有一個特殊的類SpringBootSampleApplication(名字不固定,但是要包含特定的main方法),
package com.zyk.testSpringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by Administrator on 20171019 0019. */ @SpringBootApplication public class SpringBootSampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootSampleApplication.class, args); } }
我的理解這個類就是springboot的入口,程序的各個模塊需要在這個類的目錄結構的下一級,我的目錄結構如圖:
這里我只創建了一個實體類,對應數據庫中的testspringboot表
package com.zyk.testSpringboot.bean; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * Created by Administrator on 20171019 0019. */ @Entity @Table(name="testspringboot") public class TestSpringboot { @Id private String id; private String name; private String text; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
需要提一下的這里的注解,@Entity說明這個class是實體類,并且使用默認的orm規則,如果想改變這種默認的orm規則,就要使用@Table來改變class名與數據庫中表名的映射規則,@Id 注解可將實體Bean中某個屬性定義為主鍵 ,@Table注解后,想要添加表中不存在字段,就要使用@Transient這個注解。
dao模塊我只創建了一個接口:
package com.zyk.testSpringboot.dao; import com.zyk.testSpringboot.bean.TestSpringboot; import org.springframework.data.repository.CrudRepository; /** * Created by Administrator on 20171019 0019. */ public interface ShowDaoInterface extends CrudRepository{ }
這里需要說明的是,通過繼承CrudRepository接口后,我們能夠直接用springboot已經定義好的一些簡單的增刪改查方法。
service模塊就是一個簡單的調用方法,代碼如下:
package com.zyk.testSpringboot.service; import com.zyk.testSpringboot.bean.TestSpringboot; import com.zyk.testSpringboot.dao.ShowDaoInterface; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * Created by Administrator on 20171019 0019. */ @Service public class ShowService { @Resource private ShowDaoInterface showDaoInterface; public String getDataById(String id) { TestSpringboot testSpringboot=showDaoInterface.findOne(id); return testSpringboot.getText(); } }
controller模塊代碼如下:
package com.zyk.testSpringboot.controller; import com.zyk.testSpringboot.service.ShowService; import net.sf.json.JSONObject; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Collections; import java.util.HashMap; /** * Created by Administrator on 20171019 0019. */ @RestController public class ShowController { @Resource private ShowService showService; @GetMapping("/getTextById") public ResponseEntity getText(@RequestParam String id) { if(id!=null) { String text=showService.getDataById(id); JSONObject jsonObject=new JSONObject(); jsonObject.put("text",text); return ResponseEntity.ok().body(jsonObject); }else { return ResponseEntity.badRequest().body(Collections.singletonMap("info","參數id為必填項")); } } }
至此,整個項目創建完成,然后就是啟動測試了。
我是用的IDEA,啟動命令 spring-boot:run,在IDEA上配置如圖:
然后直接點擊運行就可以了,記得訪問接口時加上/testSpringboot。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67828.html
摘要:登錄網站,生成一個基本的應用。目錄結構如下由于生成的是,需要提前安裝好工具。重新運行函數啟動應用。目錄結構如下將類放置到下面,重新啟動應用,一切正常。至此,一個簡單的基于的搭建完成。 1.登錄網站https://start.spring.io/,生成一個基本的SpringBoot應用。 showImg(https://segmentfault.com/img/bVI6uh?w=1176...
摘要:喜歡學習新的技術和實現方案,挑戰難點。第三層直接符合的。遇到的問題,也盡可能的去一起解決,減輕學習上的痛苦。學習完了,就得實戰。當然也有我很多沒有考慮到的,還需繼續學習。在此期間,也可能會有更好,更有趣的想法在其中產生。 showImg(https://segmentfault.com/img/remote/1460000019521851); 有人說,Spring Boot的出現,讓...
摘要:關于的自動配置,這個是重點之一,后面細說。在后續的學習中會慢慢學習到。紅色標記的就是已經掃描到了并初始化成功了。 以下內容,如有問題,煩請指出,謝謝 springboot出來也很久了,以前零散地學習了不少,不過很長時間了都沒有在實際中使用過了,忘了不少,因此要最近準備抽時間系統的學習積累下springboot,給自己留個根。 因為以前學過一些,這里就主要根據官方文檔來學習了,可能會根據...
摘要:我們會寫切面來攔截對這些業務類和類的調用。切面定義何時攔截一個方法以及做什么和在一起成為切面連接點當代碼開始執行,并且切點的條件滿足時,通知被調用。 前言 這篇文章會幫助你使用Spring Boot Starter AOP實現AOP。我們會使用AspectJ實現四個不同的通知(advice),并且新建一個自定義的注解來追蹤方法的執行時間。 你將會了解 什么是交叉分割關注點(cross...
閱讀 623·2023-04-26 01:53
閱讀 2749·2021-11-17 17:00
閱讀 2880·2021-09-04 16:40
閱讀 1983·2021-09-02 15:41
閱讀 830·2019-08-26 11:34
閱讀 1222·2019-08-26 10:16
閱讀 1335·2019-08-23 17:51
閱讀 815·2019-08-23 16:50