用户登录
用户注册

分享至

Springboot入门及yml配置文件

  • 作者: 楼下真是一个人才
  • 来源: 51数据库
  • 2021-10-06

目录

    • Springboot概念
    • 使用Idea配置Springboot项目
    • yml配置文件

Springboot概念

Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,
只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。
也就是说,它并不是用来替代Spring的解决方案,
而是和Spring框架紧密结合用于提升Spring开发者体验的工具。

同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),
Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),
大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑
  
  注1:敏捷式开发
  注2:spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,
        就像maven整合了很多的jar包,spring boot整合了很多的框架

使用Idea配置Springboot项目


New Module--》使用Spring Initializr初始化生成springboot(可以在idea里直接使用,Spring Initializr是默认集成到idea中的,直接就可以使用它的组件),或者是使用它的一个web界面创建项目




选择应用的组件,例如Lombok




选择完成后,保持网络正常,等待加载相关依赖后即可生成springboot项目
springboot项目创建后会有一个默认程序入口:

package com.xiaoyang.springbootind;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootindApplication {

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

}


springboot本身内置一个类似于tomcat的服务器的,只需要在这个类直接启动springboot


这里启动后默认访问端口号为8080,可在创建项目后生成的properties文件中修改端口(一般会将properties文件修改为yml文件,类似xml文件,因为其结构层次更加清晰)

yml配置文件

创建完成springboot项目后,会在yml文件中配置较多的信息,springboot启动时会默认加载application.properties和application.yml以及application-{profile}.properties和application-{profile}.yml
这个文件可以配置服务器信息,传入一些参数等等…

server:
  servlet:
    context-path: /
user:
  uname: zs
  pwd: 123

这里我修改了服务器启动后访问路径为/,访问时无需带项目名称(默认)

这里结合一个案例可以进一步了解这个配置文件的使用

controller:

package com.xiaoyang.springbootind.controller;

import com.xiaoyang.springbootind.configurationproperties.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author xiaoyang
 * @create  2020-11-26 19:23
 */
@RestController  //相当于@ResponseBody+@Controller
public class HelloController {

    @Value("${user.uname}")
    private String uname;
    @Value("${user.pwd}")
    private String pwd;

    @Autowired
    private User user;//当配置信息的内容比较多时,使用属性封装

    @RequestMapping("/hello")
    public String hello() {
        return "hello springboot"+uname+pwd+user;
    }
}

web页面输出:

hello springbootzs123User(uname=zs, pwd=123)

@Value注解的作用:
将配置文件的信息读取出来并注入,有两种方法读取信息:${}、#{}
前者直接将要注入的对象属性放入即可,后者和上面的属性封装一样,需要这个属性在spring中是某个bean的属性,意思就是必须是某个实体类的属性,并且有set\get方法,所以这里使用属性封装类更加便捷
附上User类:

package com.xiaoyang.springbootind.configurationproperties;

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

/**
 * @author xiaoyang
 * @create  2020-11-26 20:14
 * 属性封装类
 */
@Component
@Data
@ConfigurationProperties(prefix = "user")
public class User {

    private String uname;
    private String pwd;
}

使用@ConfigurationProperties注解需要导入依赖(之前是可以直接点击链接解决的,版本原因需要导入pom依赖)

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

over…

软件
前端设计
程序设计
Java相关