springboot的使用笔记

什么是springboot

springboot是简化spring应用开发,是J2EE一站式解决方案,降低了对配置文件的要求。整合了整个spring的应用技术栈。
什么是微服务

微服务是一种架构风格,是由一组小型服务组成,每一个小型服务都运行在自己的进程上,通过http方式进行沟通,微服务是把应用中的每一个功能元素都独立出来,通过动态组合的方式进行使用,每一个功能元素最终都是一个可独立替换和独立升级的软件单元。区别于传统单体应用,所有的功能单元都写着一个应用里面,打包成一个war。

@SpirngBootApplication注解

(默认扫描同包,或者子包下的类,不然可能会404)
是一个组合注解主键,由以下组成
1.@springbootconfiguration:标注在某个类上,表示这个类是配置类,并注入容器中,底层由@configuration实现。
2.@EnableAutoConfiguration:开启自动配置功能,把以前需要配置的东西交给springboot自动配置,告诉springboot开启自动配置功能。底层由@AutoconfigurationPackage实现,作用是给容器中导入一个组件,底层由@impor来导入这个组件,(真正作用)这个主键可以将@SpirngBootApplication所在的包和子包里面的组件加载到spring容器中,实现自动配置。
3.@import:给容器中导入组件选择器,将需要的组件以全类名的方式返回,返回的组件就回到容器中(真正作用)会给容器中导入场景(小型服务)所需要的所有组件(类),并配置好这些组件。
4.自动配置功能组件的原理:
springboot在启动的时候会通过EnableAutoconfiguration.class的selectimports方法从META-INF/spring.factories中获取properties文件中的全路径类名,将这些类名主动导入容器中,自动配置类就生效了。

package com.zxh.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
*   @SpirngBootApplication
*       作用:用来标注一个主程序类,说明这这是一个springboot应用
*
* */
@SpringBootApplication
public class springbootTest {`在这里插入代码片`

    public static void main(String[] args) {
        //让spring应用启动起来
        SpringApplication.run(springbootTest.class,args);
    }
}

springboot的简化部署

1.导入插件

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

2.打包成jar架包
在这里插入图片描述
在这里插入图片描述

3.复制到桌面,拿到jar架包的位置

5.启动cmd,输入位置
在这里插入图片描述

6.使用 java -jar springbootfirst.jar命令部署架包

在这里插入图片描述

springboot运行探索

spring-boot-starter是spring-boot场景启动器,
springboot将所有功能都抽取出来,做成一个个的staters(小型服务),只需要在项目中引入需要的场景,就能够帮我们导入相关的依赖
一.pom.xml
1.spring-boot-starter-parent父项目
依赖于spring-boot-dependencies父项目,作用是用来管理springboot应用里面的所有依赖版本。
2.spring-boot-starter-web依赖
spring-boot-starter-web帮我们导入了web模块正常运行所依赖的项目。
二.主程序类
1.@SpirngBootApplication:作用是用于说明springboot的主配置类,需要自动配置的包和自动配置的组件(场景或者小型服务)。spring boot会运行这个主配置类的main方法来启动springboot运用

扫描二维码关注公众号,回复: 9747214 查看本文章

springboot的配置文件

springboot使用一个全局配置文件,采用application.properties或者application.yml,配置文件名称是固定的。
yml介绍

作用:修改springboot自动配置的默认值
yml是什么:是一种标记语言,跟xml文件一样都是标记语言,但是yml是以数据为中心
yml语法格式:
不用大量的解析标签,关注内容数据。
如修改服务器端口号

server:
    port:8081

而传统的xml语法格式是:
把大量的处理浪费在了解析标签上

<server>
	<port>8081</port>
</server>

yml语法格式:
yml语法:
1.基本语法
k:(空格)v:表示一对键值对(空格必须有)
以空格的缩进来控制层级关系,只要是左对齐的一列标签,都是同一层级的,属性和值都是大小写敏感的

server:
    port: 8081
    path: /hello

2.值的写法
基本类型和string类型
写法 K: V(字符串默认不用加上引号)
加双引号会转义字符串里面的特殊字符
加单引号不会转义特殊字符,直接输出。

int: 100
String: zxh111

JavaBean对象,map,(键值对):
写法一:K: v

User:
    name: zxh
    passwod: 111
    price: 666

写法二:行内写法

User: {name: zxh,password: 111,price: 666}

List,Set:
写法一:- (空格)值表示数组中的一个元素

price:
  - 777
  - 888
  - 999
  - 1000

写法二:行类写法

price:{7778889991000}

properties文件的使用格式
采用key=value的形式

//javabean对象写法
user.password=zxh  //基本类型写法
user.books.math=111	//map类型写法
user.books.music=muisc
user.days=1,2,3,4	//list集合类型写法

***@ConfigurationProperties:***默认从全局配置文件中获取值(application.yml)
告诉springboot,将yml配置或者properties配置映射到pojo的bean对象属性中,写在bean实体类上面,前提是这个bean在spring的容器中(使用@Commnent注解)。

属性:prefix=“ ”指定配置文件中的属性对象。
对比:
他的功能比@Value注解要强大一些,他可以从配置文件中注入Javabean类型,集合类型,map类型到实体类中,@Value只能注入基本类型和字符串,但支持spEL表达式。

@PropertySource 作用:加载指定的配置文件,一般写在配置类上
属性:value={“classpath:xxxx.properties”,"",…}
@ImportResource作用:加载指定的spring配置文件,一般写在配置类上(不用)
属性:location={“classpath:xxxx.xml”,"",…}

springboot推荐使用配置类的方式给与容器添加组件
1.声明配置spring的配置类
2.使用@Bean给容器添加注解

package com.zxh.springbootinit.config;

import com.zxh.springbootinit.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/*
* @Configuration:作用是声明这是一个配置类,用于替代spring配置文件
*
*
* */
@Configuration
public class Springcofig {

    /*
    * @Bean:将方法的返回值添加到容器中,默认id是方法名
    * */
    @Bean
    public User returnUser(){

        return  new User();
    }
}

配置文件占位符:
1.随机数占位符int,uuid,long,value…
2.获取之前配置的值,如果没有就把配置的占位符当作字符串返回
使用方法
${}

user.password=zxh
user.books.math=111
user.books.music=${user.password}muisc
user.days=1,2,3,${random.int}

Profile

作用:给不同的开发环境(测试,开发,运行,发布等)提供功能的支持

1.多Profile文件方式
配置文件名称编写格式:application-{profile}.properties/yml默认使用application.properties/yml
激活方式:在对应的application-{profile}.properties/yml配置文件中指定:springprofiles.active=dev ,就可激活

springprofiles.active=dev

2.yml支持多文档块方式

server:
    port: 8081
spring:
    profiles:
      active: dev

---
server:
    port: 8082
spring:
    profiles: dev
---
server:
    port: 8083
    profiles: prod

激活对应的代码块方式:

spring:
    profiles:
      active: dev
发布了5 篇原创文章 · 获赞 2 · 访问量 332

猜你喜欢

转载自blog.csdn.net/weixin_43881925/article/details/104749875
今日推荐