Springboot
SpringBoot简介
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项目
勾选需要的配置
springboot项目是不需要发布到tomcat上去跑的,它自动帮我们集成了tomcat,我们只需要运行它自带的main方法就能跑起项目了
能够出现以下就是运行成功了
Demo
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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lst</groupId>
<artifactId>springboot01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot01</name>
<description>Demo project for Spring Boot</description>
<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.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
HelloController
@RestController:这个控制器里面所有的方法都直接返回json
package com.lst.springboot01.controller;
import com.lst.springboot01.entity.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;
import java.util.HashMap;
import java.util.Map;
/**
* @create 2019-11-07 16:53
*
* RestController=controller+responsebody
*
*/
@RestController
public class HelloController {
@Value("${user.uname}")
private String uname;
@Value("${user.pwd}")
private String pwd;
@Autowired
private User user;
@RequestMapping("/hello1")
public String hello1(){
return "helloword springboot !!!";
}
@RequestMapping("/hello2")
public Map hello2(){
Map map = new HashMap();
map.put("code",200);
map.put("msg","springboot 访问成功!!!");
return map;
}
@RequestMapping("/hello3")
public Map hello3(){
Map map = new HashMap();
map.put("uname",uname);
map.put("pwd",pwd);
return map;
}
@RequestMapping("/hello4")
public User hello4(){
return user;
}
}
Springboot01Application
package com.lst.springboot01;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springboot01Application {
public static void main(String[] args) {
SpringApplication.run(Springboot01Application.class, args);
}
}
把application的后缀改成.yml形式,显得层次分明
server:
port: 808
servlet:
context-path: /
user:
uname: zs
pwd: 999
age: 23
sex: 男
实体类User
@Data:这个注解就相当于你实体类的get/set/toString等方法
@ConfigurationProperties(
prefix=“user”
)
package com.lst.springboot01.entity;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @create 2019-11-07 20:14
*/
@ConfigurationProperties(
prefix = "user"
)
@Component
@Data
public class User {
private String uname;
private String pwd;
private Integer age;
private String sex;
}
效果展示:
over。。。