Spring Boot 项目学习 (一) 项目搭建

引言

  本文主要记录借用Idea 开发环境下,搭建 Spring Boot 项目框架的过程。

系列文档目录

Spring Boot 项目学习 (一) 项目搭建

Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

Spring Boot 项目学习 (三) Spring Boot + Redis 搭建

Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档

第一个Spring boot web 程序

  什么是 Spring Boot:spring boot=spring+spring mvc+一堆java技术栈的相关框架+约定大于配置的思想。

  spring boot 并不是一项新的技术,就像ajax一样,而是各种已有技术的一个组合。它的出现,将极大地提高java应用的开发效率。同时,它的出现,彻底颠覆了以往我对java的认识(除了配置,TMD还是配置)。轻量级、可插拔、微服务。

2.1 构建项目

我们先来看下pom.xml,它是maven来管理各种jar包依赖的一个配置文件,是一个包管理工具。

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>com.jaminhuang</groupId>
    <artifactId>springboot</artifactId>
    <version>1.0</version>
    <name>springboot</name>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
View Code

配置主入口

  修改主配置入口类,并去掉控制台输出的Banner图标。(当然,这里不做任何处理也没有关系,只是去除图标后,显得更为清晰

@SpringBootApplication
public class Application {

    //配置 主入口
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(Application.class);
        springApplication.setBannerMode(Banner.Mode.OFF);
        springApplication.run(args);
    }
}

配置文件 application.properties

  删除原有的 application.properties 文件,个人更习惯于使用application.yml这个文件来替代application.properties。

  然后在添加一个文件application.yml,注意要和application.properties在同一级目录下面。

  添加配置项:

server:
  port: 8080

  新建一个控制器HelloController。

package com.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "hello spring boot";
    }
}

  @RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

配置热部署

  在这之前,如果我们每次修改了代码,都必须重启一下服务器,并重新运行代码,那么有了热部署之后,修改了代码,我们只需要在IDEA中点击一下Build,就可以直接看到效果了,不需要重启服务器。pom.xml文件中添加如下依赖:

        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

  修改pom.xml

  优点:简单,支持Spring-boot项目,支持成员级别的修改热部署。

  缺点:只支持spring-boot项目。

读取配置文件

  修改配置文件application.yml,添加如下代码:

website:
  name: 简单的spring boot
  domain: https://www.jaminhuang.com
  msg: 这是一个简单的spring boot 框架

  新建配置文件类WebSiteConfig,字段名称和配置项中的名称保持一致。

package com.springboot.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "website")
public class WebSiteConfig {
    private String name;
    private String domain;
    private String msg;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "WebSiteConfig{" +
                "name='" + name + '\'' +
                ", domain='" + domain + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }
}
View Code

  创建该对象后,还需要配置pom.xml

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

  在控制器类HelloController中修改代码:

package com.springboot.controller;

import com.springboot.config.WebSiteConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private WebSiteConfig webSiteConfig;


    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "hello spring boot";
    }

    @GetMapping("/config")
    public String getConfig() {
        return webSiteConfig.toString();
    }
}
View Code

  最后,配置完成,运行项目,通过访问地址可以查看实际结果啦~

posted @ 2019-06-19 15:34  JaminHuang  阅读(504)  评论(0编辑  收藏  举报