SpringBoot入门

一.Spring boot 入门

1.Spring boot简介

简化spring应用开发的框架;

整个spring技术栈的大整合;

j2EE开发的一站式解决方案;

2.微服务

2014,martin fowler
微服务:架构风格
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;

每一个功能元素最终都是一个可独立替换和独立升级的软件单元;

3.环境约束

-jdk:13

maven:3.3.7

Intelli JIDEA:2019

SpringBoot 1.5.9RELEASE

4.Spring Boot HelloWorld

一个功能

浏览器发送hello请求,服务器接收请求并处理,响应HelloWorld字符串

1.创建一个maven工程;(jar)

2.导入spring boot相关的依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

3.编写一个主程序;启动spring boot应用

@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args) {

        //启动
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

4.编写相关的Controller,Service

@Controller
public class HelloWorldController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "HelloWorld";
    }
}

5.部署主程序测试

6.简化部署

<!--    这个插件,可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

5.HelloWorld探究

1.pom文件

1.父项目
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    他的父项目是
    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-dependencies</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath>../../spring-boot-dependencies</relativePath>
	</parent>
    他相当于真正管理spring boot应用里面的所有依赖版本;

Spring boot的版本仲裁中心
以后导入依赖默认是不需要写版本的(没有在dependencies里面管理的自然就需要声明版本号)

2.启动器
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

spring-boot-starter-web

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

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

2.主程序类,主入口类

@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args) {

        //启动
        SpringApplication.run(HelloWorldMainApplication.class,args);
    }
}

@ SpringBootApplication:说明这个类是spring boot主配置类,
spring boot 就因该运行这个main方法来启动spring boot应用;

@SpringBootConfiguration:spring boot的配置类;

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

@ Configuration:配置类上标志这个注解;
配置类–配置文件;配置类也是容器中的一个组件:Component

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

@AutoConfigurationPackage:自动配置包

6.使用Spring Initiallizer快速创建Spring Boot项目

默认生成的Spring Boot项目;

  • 主程序已经生成好了,我们只需要编写自己的业务逻辑
  • resources文件夹的目录结构
  • -static : 保存所有的静态资源;js css images;
    
  • -template:保存所有的模板页面;(Spring Boot默认jar包使用Tomcat,默认不支持JSP页面)
    
  • 可以使用模板引擎(freemarker,thymeleaf);
    
  • application.properties:Spring Boot应用的配置文件;可以修改一些默认设置
    

2.配置文件

1.配置文件

SpringBoot使用全局的配置文件,配置文件名是固定的

  • application.properties
  • application.yml

配置文件的作用:修改SpringBoot自动设置默认配置

YAML(YAML Ain’t Markup Language)

标记语言:
以前的配置文件大多是以 xxxx.xml文件;
YAML以数据为中心,比json,xml跟适合做配置文件;
配置实例

server:
    port: 8081

2.YAML语法:

1.基本语法:

k: v : 表示一对键值对(空格必须有)
以空格的缩进来控制层级的关系;只要左对齐的一列数据,都是同一层级的

server:
    port: 8080
    path:/hello

属性和值也是大小写敏感的;

2.值的写法

字面的值:普通的值(数字,字符串,布尔)
k:v :字面直接写;
字符串默认不用加上双引号;
“” : 不会转义字符串里面的特殊字符,例如"hello\n"不会换行
‘’ : 会转义特殊字符
对象,Map(属性和值)(键值对):
对象还是k: v的方式

friends: 
    lastName: heyutang
    age: 20

行内写法:

friends: {lastName: heyutang,age: 20}

数组,集合(List,Set):
用-表示数组中的一个元素

pets:
 - cat
 - dog
 - pig

行内写法

pets: [dog,pig,cat]

3.配置文件值注入

配置文件

person:
    lastName: zhansan
    age: 19
    boss: false
    birthday: 2017/10/21
    maps: {k1: v1,k2: v2}
    lists:
      - lisi
      - zhaoliu
      - heyutang
    dog:
      name: 哈士奇
      age: 3

javaBean:

@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String lastName;
    private Integer age;
    private boolean boss;
    private Date birthday;

    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值