SpringBoot入門之工程搭建(IDEA版)

Spring-Boot Spring的春天java

在以前咱們一直使用Spring、SpringMVC進行開發,的確,Spring讓咱們認識到了項目開發原來能夠這麼方便。可是大量的配置文件倒是使人頭痛的,即便咱們想寫一個簡單的請求映射並在瀏覽器上發送Get請求測試,那麼須要:1.在web.xml中配置DispatcherServlet; 2.在application.xml中配置註解掃描、註解驅動。能夠看到:雖然Spring是輕量級的,可是Spring的配置倒是重量級的。而且搭建每一個Spring項目咱們都須要考慮依賴版本是否衝突的問題...git

So,SpringBoot將這一切都解決了。SpringBoot提供了一種固定的、約定優於配置風格的框架,讓開發者能更快的建立基於Spring的應用程序和服務。github

對應的SpringBoot整合Mybatis實現CRUD的項目和筆記請看個人Github倉庫:教你優雅的入門Spring Boot框架web

若是以爲不錯就點擊右上角star鼓勵一下筆者吧(#^.^#)spring

SpringBoot有以下特性:數據庫

  1. 更高效的建立基於Spring的應用服務
  2. 無需XML配置,能夠修改默認值來知足特定的需求
  3. 提供了一些大型項目中常見的非功能性特性,如嵌入式服務器、安全...
  4. Spring Boot並非對Spring功能上的加強,而是提供了一種快速使用Spring的方式

SpringBoot項目搭建

這裏我選擇使用IDEA來建立SpringBoot項目後端

1.選擇Spring Initializr,並選擇本地的JDK版本瀏覽器

2.Next,指定Group和Artifact名稱,並選擇本機JDK版本安全

3.選擇項目所需依賴springboot

解釋

devtools: SpringBoot提供的熱部署插件,能夠避免每次修改代碼都要從新啓動項目。。

lomback: 使用Lomback能夠減小項目中不少重複代碼的書寫,好比getter/setter/toString等方法的書寫(雖然這些可能咱們都是用的快捷鍵生成的代碼)。具體用法能夠參考博文:lomback介紹

Thymeleaf: 語法的支持

注意: 以上依賴非必選,若是僅僅想嘗試一下Spring Boot-HelloWorld,只須要選擇其中的web依賴便可。

<br/>

SpringBoot起步

以上是新建立的Spring Boot項目。在SpringBoot中有一個啓動器(引導類)的概念,咱們首先看一下SpringbootApplication.java:

@SpringBootApplication
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

如上,僅是一個簡單的main方法,其中最核心的就是@SpringBootApplication註解,它是一下三個註解的總和:

  1. @Configuration: 用於定義一個配置類。
  2. @EnableAutoConfiguration: SpringBoot會自動根據你的jar包依賴來自動配置項目。
  3. @ComponentSacn: 告訴Spring哪一個packages的用註解標識的類會被Spring自動掃描而且轉入Bean容器。

經過以上三個註解你就應該瞭解到了SpringBoot的做用:自動化配置項目。以前咱們要手動進行的XML配置在這裏僅須要這一個註解就完成了。且SpringBoot項目不須要單獨部署到Tomcat中才能啓動,經過這個啓動器,SpringBoot會自動構建一個web容器,並將項目部署到其中。

So,

Run SpringBootApplication

發現報錯,說DataSource數據源的url地址沒有配置。以前咱們提到了SpringBoot的特性就是自動化配置,它會根據你的依賴文件來配置項目,咱們再看一下咱們的pom.xml

其中最上層的<parent>節點約束了整個下面全部spring-boot依賴的版本,即這裏使用了SpringBoot-2.0.5。而後關注<dependencies>節點下的前四個依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

Spring Boot應用啓動器

spring-boot-starter: Spring Boot的核心啓動器,包含了自動配置、日誌和YAML。

spring-boot-starter-jdbc: 支持JDBC數據庫。

spring-boot-starter-thymeleaf: 支持Thymeleaf模板引擎,包括與Spring的集成。

spring-boot-starter-web: 支持全棧式開發,包括Tomcat和Spring-WebMVC。

mybatis-spring-boot-starter: 整合spring-mybatis依賴。

前面咱們強調的一點是Spring Boot能實現自動化配置,那麼項目的依賴就決定了Spring Boot將如何自動配置項目,Spring Boot的啓動器就決定了項目會以什麼樣的配置啓動項目;如此,咱們會明白這個報錯是爲何了。

由於咱們配置配置JDBC鏈接的數據庫,因此報錯,註釋掉spring-boot-starter-jdbcmybatis-spring-boot-starter依賴,再次啓動SpringBootApplication:

啓動成功。

測試

src/main/java/cn/tycoding/springboot/下建立controller文件夾並建立LoginController.java類:

@RestController
public class LoginController {

    @RequestMapping("/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password) {
        System.out.println("username:" + username + ", password:" + password);
        return null;
    }
}

如上就完成了在SSM階段一個最基本的SpringMVC Controller映射方法的書寫,那麼測試一下:

在瀏覽器上訪問:

localhost:8080/login?username=tycoding&password=123

後端便可接收到username和password參數。

這時你會發現,SpringBoot內置的Web容器默認訪問地址就是8080端口,若是想改變這個默認端口,修改src/main/resources/application.properties

server.port=8088

重啓SpringbootApplication,訪問:localhost:8088/login?username=tycoding&password=123

讀取配置文件信息

src/main/resources/application.properties中添加配置:

url=http://www.tycoding.cn

LoginController.java中添加映射方法:

@RestController
public class LoginController {
    @Autowired
    private Environment environment;

    @RequestMapping("/blog")
    public String login(){
        return environment.getProperty("url");
    }
}

Spring提供的Environment類用戶讀取配置文件中參數,訪問:localhost:8088/blog便可獲得。

<br/>

交流

若是你們有興趣,歡迎你們加入個人Java交流技術羣:671017003 ,一塊兒交流學習Java技術。博主目前一直在自學JAVA中,技術有限,若是能夠,會盡力給你們提供一些幫助,或是一些學習方法,固然羣裏的大佬都會積極給新手答疑的。因此,別猶豫,快來加入咱們吧!

<br/>

聯繫

If you have some questions after you see this article, you can contact me or you can find some info by clicking these links.

相關文章
相關標籤/搜索