SpringBoot的hello

191 阅读3分钟

这是我参与11月更文挑战的第N天,活动详情查看:2021最后一次更文挑战

一个程序

我说太多,直接上图最直观

选好我们需要的依赖项,web中的和SQL中

创建好之后的目录索引

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class SpringBootDemoApplication {

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

}

这个类相当于我们的代码入口,我们要在@SpringBootApplication标签添加exclude = DataSourceAutoConfiguration.class属性,因为我们最开始选择了SQL,大家也可以只选择Web就不会出现这样的问题。

我们在创建Controller包,!!!要记住SpringBootDemoApplication一定要在其他类上方。

@Controller
public class HelloDemo {
    @ResponseBody
    @RequestMapping("/Hello")
    public String HelloDome(){
        return "Hello World";
    }
}

写法Spring写法相同,之后我们启动项目,

了解

pom

我们没有配置Tomcat,使用的是SpringBoot内置的Tomcat。

接下来我们了解一下SpringBoot,最先从pom文件开始

管理Spring Boot应用里面的所有依赖版本;Spring Boot的版本仲裁中心;

以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

spring-boot-starter-web:

spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;

Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器

@SpringBootApplication

Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

@SpringBootConfiguration:Spring Boot的配置类;

标注在某个类上,表示这是一个Spring Boot的配置类;

@Configuration:配置类上来标注这个注解;

配置类 ----- 配置文件;配置类也是容器中的一个组件;@Component

@EnableAutoConfiguration:开启自动配置功能;

以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效;

在@EnableAutoConfiguration

@AutoConfigurationPackage:自动配置包

@Import(AutoConfigurationPackages.Registrar.class):

Spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class;

将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

配置文件

  • static:保存所有的静态资源; js css  images;
  • templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
  • application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;

YAML

k:(空格)v:表示一对键值对(空格必须有);

空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

server:
    port: 8081
    path: /hello

k: v:字面直接来写;

字符串默认不用加上单引号或者双引号;

"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "zhangsan \n lisi":输出;zhangsan 换行 lisi

'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象(属性和值)、Map(键值对)

friends:
		lastName: zhangsan
		age: 20
    
    
//行内写法
 friends: {lastName: zhangsan,age: 18}

数组(List、Set)

pets:
 - cat
 - dog
 - pig
 
//行内写法
pets: [cat,dog,pig]