SpringBoot基础

 优点 
1.快速构建项目:省略了繁琐且重复的 xml 配置,分分钟构建一个 web 工程; 
2.对主流开发框架的无配置集成:提供了很多 Starter 依赖包,开箱即用,无需多余配置; 
3.项目可独立运行:无需外部依赖 Servlet 容器; 
4.极大地提供了开发、部署效率; 
5.监控简单:提供了 actuator 包,可以使用它来对你的应用进行监控。 
缺点 
1.依赖太多:一个简单的 SpringBoot 应用都有好几十 M 只有; 
2.缺少监控集成方案、安全管理方案:只提供基础监控,要实现生产级别的监控,监控方案需 要自己动手解决

语法SpringBoot配置文件

配置文件的作用:修改Spring Boot自动配置的默认值


Spring Boot使用一个全局的配置文件,配置文件名是固定的
    application.properties
    application.yml
配置文件一般放在src/main/resources目录或者类路径/config下

YAML
标记语言:
    YAML:以数据为中心,比json、xml更适合做配置文件

    

1.基本语法

k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级
例如:
                server:
                    port: 8081
                    path: /hello
         注意 :      属性和值也是大小写敏感

2.值的写法:
字面量:普通的值(数字,字符串,布尔)
k: v:字面值直接来写
      字符串默认不用加单引号或者双引号
      “双引号;不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思
    name:"zhangsan \n lisi"输出后zhangsan 换行 lisi
        单引号:会转义特殊字符,特殊字符最终只是一个普通的字符串数据
    name:"zhangsan \n lisi"输出后zhangsan \n lisi     不会改变

对象、Map(属性和值)(键值对); 
对象的写法
k: v:
    对象还是k: v的方式
例如:
friends:
    name: zhangsan
    age: 12
或者:friends: {name: zhangsna,age: 15}
数组(List、Set)
用  -值  表示数组中的一个元素
pets:
 -cat
 -dog
行内写法
pets: [cat,dog]

person:
  lastname: zhangsan
  age: 18
  boss: false
  birth: 2021/12/5
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - zhang
  dog:
    name: xiaoqi
    age: 12

我们在生成springboot项目时可以使用Spring Initializr来自动创建springboot项目的目录

它会在官网上自动下载

使用Spring Initializer快速创建Spring Boot项目
默认生成的Spring Boot 项目
    主程序已经生成好了,我们只需选择自己的逻辑
    resources文件夹中目录结构:
        static:保存所有的静态资源;js   css  images
        templates:保存了所有的模板页面;(SpringBoot 默认jar包使用嵌入式的tomcat,默认不支持jsp页面)
        可以使用模板引擎 
        Application.properties:Spring Boot应用的配置文件;可以修改一些默认设置

我们在做springboot项目的过程中会使用到Maven

Maven基本命令
-v:查询Maven版本

本命令用于检查maven是否安装成功。

Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。

compile:编译

将java源文件编译成class文件

test:测试项目

执行test目录下的测试用例

package:打包

将项目打成jar包

clean:删除target文件夹

install:安装

读取配置文件的内容

@ConfigurationProperties(prefix = "person")将配置文件中配置的每一个属性值,映射到这个组件中
/**
 * 将配置文件中配置的每一个属性值,映射到这个组件中
 *@ConfigurationProperties告诉springboot将本类中所有的属性和配置文件中的相关配置进行绑定;
 * prefix="person",配置文件中person下面的所有属性进行一一映射
 * 只有组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
 * @ConfigurationProterties(prefix = "person")默认从全局文件中获取值
 *
 *@PropertySource(value = {"classpath:person.properties"})加载指定的配置文件
 *
 *@ImportResource导入spring的配置文件
 * springboot中没有spring的配置文件,我们自己编写的配置文件,也不能自动识别;
 * 想让spring配置文件生效,就要用@@ImportResource标注在一个配置类上,让其生效
 */
@Component
//加载指定的配置文件
@PropertySource(value = {"classpath:person.properties"})
@ConfigurationProperties(prefix = "person")

public class Person {
    private String lastname;
    private Integer age;
    private Boolean boss;
    private Date birth;

    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

SpringBoot常用注解

@SpringBootApplication:是Sprnig Boot项目的核心注解,目的是开启自动配置

@SpringBootApplication
public class DemoApplication {

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

}

@Configuration:指明当前类是配置类,就是用来替代之前的spring配置文件,等同于spring的XML配置文件

/**
 * @Configuration:指明当前类时配置类,就是来替代之前的spring配置文件
 * 以前在配置文件中我们使用<bean></bean>标签添加组件
 *
 */
@Configuration
public class Myconfig {

    @Bean
    //将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
    public HelloService helloService() {
        System.out.println("配置类@Bean给容器中添加组件了");
        return new HelloService();
    }
}

@Autowired:自动导入依赖的bean和@Bean:用@Bean标注方法等价于XML中配置的bean。

@Configuration
public class UserConfigTest extends WebSecurityConfigurerAdapter {
    @Autowired
    private UserDetailsService userDetailsService;

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(password());
    }
    @Bean
    PasswordEncoder password(){
        return new BCryptPasswordEncoder();
    }

用.properties文件配置实体类的值

#配置person的值
person.lastname=xia
person.age=0
person.boss=false
person.birth=2017/5/26

person.maps.k1=20
person.maps.k2=30
person.lists=a,b,c
person..dog.name=小七
person.dog.age=2

pom.xml文件配置:

<!-- 导入配置文件处理器,配置文件绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>
<!--  打包   这个插件可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

配置文件占位符

随机数

person.lastname=张靓颖${random.uuid}
#person.age=0
person.age=${random.int}
person.boss=false
person.birth=2017/5/26

person.maps.k1=20
person.maps.k2=30
person.lists=a,b,c
person..dog.name=${person.hello:hello}dog
person.dog.age=2

执行结果 

Person{lastname='张靓颖464de6c2-40df-4d2b-9f89-0f3b048ece7a', age=426671851, boss=false, birth=Fri May 26 00:00:00 CST 2017, maps={k1=20, k2=30}, lists=[a, b, c], dog=Dog{name='hellodog', age=2}}

占位符获取之前匹配的值,如果没有可以用冒号:指定默认值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值