Springboot框架学习笔记------项目搭建、程序解析、配置文件的作用

今天开始学习spring boot,这个框架整合spring和springmvc,简化了很多的配置,这是目前的理解。

搭建流程:

1.从idea搭建,利用maven创建项目,前提是联网,需要下载maven依赖
2.创建成功以后,看项目的结构
在这里插入图片描述
上面的springbootwebapplication是创建项目的时候自带的,里面包含main方法,是程序执行的入口,SpringApplication.run启动了springboot程序,启动spring容器,启动内嵌的tomcat。
因为创建的是一个web项目,自己添加了一下controller,添加requestmapping,前台直接调用。

**

程序解析

**
1.springboot的父级依赖spring-boot-starter-parent配置之后,当前的项目就是springboot项目。
2.当引入spring-boot-starter-parent之后,直接提供了相关的maven默认依赖,使用它之后,常用的jar包依赖可以省去version配置。
3.springboot提供了哪些默认jar的依赖,可以查看该父级依赖的pom文件
4.如果不想使用某个默认的依赖版本,可以通过pom.xml文件的属性配置来覆盖版本信息
5.@SpringBootApplication这个注解是springboot项目的核心注解,主要作用是开启spring自动配置,
6.@Controller和@ResponseBody依然是之前的springmvc,springboot使用的还是ssm的东西。

配置文件(application.properties)的简单介绍:

1.server.port=8080:设置请求的端口号
2.server.servlet.context-path=/springboot-web:指定请求的上下文路径
这是springboot2.0往上的用法,之前的是server.context-path
3.application.properties的作用和application.yml的作用相同,如果同时存在,起作用的是application.properties
4.当多环境配置文件的时候,需要在application.properties中指定激活的配置文件
spring.profiles.active=dev
5.当在总的配置文件中激活另外的配置文件时,起作用的时被激活的配置文件
6.当总配置文件中配置,但是被激活配置文件中没配置的,总配置文件中的配置会生效

读取配置文件中的属性的两种方式

1.在配置文件中设置属性的值,然后加value注解,直接取值

boot.name=王雷凯
boot.age=22
@Controller
public class ConfigInfoController {

    @Value("${boot.name}")
    private String name;

    @Value("${boot.age}")
    private int age;

    @RequestMapping("/boot/config")
    public @ResponseBody String hello(){
        System.out.println(name+" --- "+age);
        return name+"---"+age;
    }
}

如果出现乱码,在配置文件中添加:

spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

2.再另外写一个类,将整个文件映射为一个对象:

@Component
@ConfigurationProperties(prefix = "boot")//前缀
public class ConfigInfo {

    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

取值的时候直接在controller中自动注入这个类,然后get属性

@Autowired
    ConfigInfo configInfo;

    @RequestMapping("/boot/config")
    public @ResponseBody String hello(){

        return this.name +"---"+ this.age + configInfo.getName() + configInfo.getAge();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值