Spring Boot学习

Spring Boot介绍

Spring Boot简介?

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。(来源百度百科)

Spring Boot 特征

1、能快速创建基于Spring的应用程序。
2、能直接使用java main 启动Tomcat服务器运行。
3、Maven配置简单
4、自动化配置Spring、Spring mvc等
5、基本不使用XML配置文件,使用注解配置。

Spring Boot 核心

核心常用的就两点:1、自动配置,2、起步依赖。在后面的案例中再细说这两点。

Spring Boot案例

Spring Boot创建

(基于IntelliJ IDEA,本人现在IDEA中创建了一个空工程,Spring Boot学习所创建的项目都在这个空工程下)
1、创建一个Module,选择其中的Spring Initializr创建。
在这里插入图片描述注意上面这个Default:https://start.spring.io是需要联网的,然后下一步即可
2、在这里插入图片描述上面圈起来的东旭,第一个是SpringBoot默认的打包方式,有两种jar和war.
下面圈起来这个是启动类所在的包。
然后继续选择下一步。
3、在这里插入图片描述
4、这个就是这个项目的名称,然后选择Finish,第一次需要下载一下东西。在这里插入图片描述

5、这也就创建完成了。

上面图片也就是sprig Boot文件的目录结构,其中:
static:存放静态资源文件
templates:存放Web页面模板文件
src/main/resources/application.properties:存放配置信息
Application.java:Spring Boot程序的执行入口。Java main方法
6、POM.xml文件说明

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
<!--继承Spring Boot框架的一个父项目,必须继承-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.1</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
<!--maven 的GAV坐标-->
	<groupId>com.heqinz.springboot</groupId>
	<artifactId>001-Springboot</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<name>001-Springboot</name>
	<description>Demo project for Spring Boot</description>
	<!--maven 属性配置,可以在其它地方通过${}方式进行引用-->
	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
<!--SpringBoot 框架 web 项目起步依赖,通过该依赖自动关联其它依赖,不需要我们一个一个去添加-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

<!--SpringBoot 框架的测试起步依赖,例如:junit 测试,如果不需要的话可以删除-->
		<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>

看了上面的配置,然后再来一步步学习springboot应用。

Spring Boot应用入门

1、创建一个Spring MVC的Spring BootController
在这里插入图片描述这个目录必须在Application的同级或者下级,不然加载不到

package com.heqinz.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author admin
 * @date 2020/12/26  15:49
 */
@Controller
public class SpringBootController {
    @RequestMapping(value = "/springboot/say")
    public @ResponseBody String say(){
        return "Hello world!!!";
    }
}

然后直接运行Application,
在这里插入图片描述会启动内置的tomcat服务器,端口号为8080,后面的地址是在代码注解中配置的 @RequestMapping(value = “/springboot/say”)。所以在浏览器中输入http://localhost:8080/springboot/say

在这里插入图片描述

Spring Boot入门案例分析

主要说一下几个配置文件:
1、@SpringBootApplication注解:核心注解,开启自动配置,去掉了这个注解,就不会启动Spring Boot程序
2、@Controller以及@ResponseBody这两个注解,和之前使用的Spring MVC是一样的,Spring Boot内部其实就是Spring +Spring MVC + MyBatis

Spring Boot核心配置文件

首先,Spring Boot的所有配置文件,都是以application为开头来命名的。
1、.properties配置文件,修改默认tomcat端口号,上下文根键值对等信息。
例如:
在这里插入图片描述修改后,启动项目
在这里插入图片描述访问url更新为:http://localhost:9099/001-springboot-test/springboot/say
在这里插入图片描述除了.properties这种格式文件外,还有一种方法用于配置端口等信息,并且更加直观“.yml”
但是这两种文件如果同时存在,便按照.properties这种格式运行

server:
	port:9099
	servlet:
		context-path:/001-springboot-test

Spring Boot多环境配置

在实际开发过程中,同一套代码可能要部署到开发环境、测试环境、灰度环境等不同的环境,然而每个环境中的配置缺不一样,如果每次都替换一便配置文件,就显得有些麻烦,所以Spring Boot提供了多环境配置。
在这里插入图片描述各个配置文件内容分别为:
application-dev.properties

#修改默认端口号为9099
server.port=9099

#修改项目上下文配置
server.servlet.context-path=/001-springboot-dev

application-test.properties

#修改默认端口号为8080
server.port=8080

#修改项目上下文配置
server.servlet.context-path=/001-springboot-test

application-online.properties

#修改默认端口号为80
server.port=80

#修改项目上下文配置
server.servlet.context-path=/001-springboot-online

然后再配置一下application.properties文件

#spring.profiles.active=dev

spring.profiles.active=online

#spring.profiles.active=test

这个需要哪个环境,就放开那个环境,注释掉其他环境就可以实现

yml格式也一样,各个环境配置文件按照刚才说的yml方法写,然后总配置文件如下写法,哈还是用那个,就把不用的注释掉:

spring:
	profiles:
		active:dev
#spring:
#	profiles:
#		active:test
#spring:
#	profiles:
#		active:online

Spring Boot自定义配置

1、@Value注解
用途:读取appplication.properties中配置
先来看配置文件,这个配置文件中foot.name与packaging

#修改默认端口号为9099
server.port=9099
#修改项目上下文配置
server.servlet.context-path=/001-springboot
foot.name = Milk
packaging = bottle

然后再来看controller中定义的属性,并使用@Value注解

package com.heqinz.springboot.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author admin
 * @date 2020/12/26  15:49
 */
@Controller
public class SpringBootController {

    //食物名称
    @Value("${foot.name}")
    private String footName;

    //包装
    @Value("${packaging}")
    private String packaging;
    @RequestMapping(value = "/springboot/say")
    public @ResponseBody String say(){
        return footName + "--------" + packaging;
    }
}

最后再启动Application,浏览器输入:http://localhost:9099/001-springboot//springboot/say,查看访问返回结果:
在这里插入图片描述
2、@ConfigurationProperties注释
用途:将整个文件映射成一个对象,在自定义配置项比较多时用的比较多。
示例:在com.heqinz.springboot.config目录下创建一个类:ConfigInfo,集体内容为:

package com.heqinz.springboot.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author admin
 * @date 2020/12/28  13:55
 */
@Component
@ConfigurationProperties(prefix = "food")
public class ConfigInfo {
    private String name;

    private  String packaging;

    public String getName() {
        return name;
    }

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

    public String getPackaging() {
        return packaging;
    }

    public void setPackaging(String packaging) {
        this.packaging = packaging;
    }
}

appplication.properties配置:

#修改默认端口号为9099
server.port=9099

#修改项目上下文配置
server.servlet.context-path=/001-springboot

food.name = coke
food.packaging = bottle

再来看Controller类:

package com.heqinz.springboot.controller;

import com.heqinz.springboot.config.ConfigInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author admin
 * @date 2020/12/26  15:49
 */
@Controller
public class SpringBootController {

    @Autowired
    private ConfigInfo configInfo;

    @RequestMapping(value = "/springboot/say")
    public @ResponseBody String say(){
        return configInfo.getName() + "--------" + configInfo.getPackaging();
    }
}

启动Application类,浏览器输入url:http://localhost:9099/001-springboot//springboot/say
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值