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 构建项目

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

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

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

我们先来看下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>

配置主入口

  修改主配置入口类,并去掉控制台输出的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项目,支持成员级别的修改热部署。

  缺点:只支持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 + '\'' +
'}';
}
}

  创建该对象后,还需要配置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();
}
}

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

上一篇:php操作mongodb基础语法


下一篇:玩转ELK之三件套安装配置详解