【Spring boot 学习】基本配置以及web层的使用

一、引入

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。

二、使用iDEA的创建过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、简单地测试

在demo包下创建controller包以及测试类

package springbootdemo.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/index")
public class IndexController {
  @RequestMapping("test1")
  public String test1(){
    return "hello!Springboot!";
  }
}

启动项目,若见spring的字样即成功,在浏览器中输入http://localhost:8080/index/test1

关于@RestController与@Controller的区别:请见此文

四、进行简单地配置

1.读取核心配置文件

1)@Value方式
${}中为application.properties中的键值,以下代码在原controller测试类中进行添加

  @Value("${server.port}")
  private String port;
@RequestMapping("portCheck")


  public String test2(){
    return "port:"+port;
  }

2)enviroment方式‘

  // 核心配置文件读取 (Environment)
//  @Autowired
//  private Environment env;

2.读取自定义properties文件

1)在resours创建properties文件
在这里插入图片描述
2.在controller中创建获取信息类

package springbootdemo.demo.controller;


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

@Component
@PropertySource(value = "classpath:/test.properties")
@ConfigurationProperties(prefix = "person")
public class PersonSetting {
  private String name;
  private String age;

  public String getName() {
    return name;
  }

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

  public String getAge() {
    return age;
  }
  
  public void setAge(String age) {
    this.age = age;
  }
}

3.在controller测试类中注入bean并使用

 @Autowired
  PersonSetting personSetting;
  @RequestMapping("nameCheck")
  public String test4(){
    return "name:"+personSetting.getName()+" age:"+personSetting.getAge();
  }

Autowired与new对象的区别https://blog.csdn.net/p358278505/article/details/78404828
3.log配置

采用默认的logback

只需在application.properties进行配置

spring.profiles.active=dev
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.file.path=/Users/lyf/Desktop/demo/src/main/logs
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level%logger- %msg$n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level%logger- %msg$n

4.web层的使用(thymeleaf)

1)pom.xml 中引入 thymeleaf-spring5

    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
    </dependency>

2)创建User model进行测试

package springbootdemo.demo.model;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class User {
  private String name;
  private int age;

  public User(String name, int age) {
    this.name = name;
    this.age = 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;
  }

  public static List<User> getUsers(){
    List<User> Users=new ArrayList<User>();
    for(int i=0;i<5;i++){
      User user=new User("x",12);
      Users.add(user);
    }
    return Users;
  }
}

3)在templates中创建html,并引入

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table>
  <thead>
  <tr>name</tr>
  <tr>age</tr>
  </thead>
  <tbody>

   <tr th:each="user:${users}">
   <td th:text="${user.name}"></td>
    <td th:text="${user.age}"></td>
  </tr>

  </tbody>

</table>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值