springboot框架学习积累---基础回顾

springboot框架学习积累—基础之约定优于配置

1.预定优于配置

约定优于配置(Convention over Configuration)是一种设计范式,又称为按约定编程,简单理解就是遵循约定

2. SpringBoot的概念

  1. Spring的优缺点
    1. 优点:IOC,AOP
    2. 缺点1. 配置文件比较重,十分繁琐。2. 项目jar包的依赖管理十分繁琐,首先要分析导入哪些库的坐标,然后要看之后导入的jar包和之前的jar包的依赖关系,对应选版本,考虑版本的兼容性
  2. SpringBoot解决了上述的问题
    1. 起步依赖:本质是一个maven项目对象模型,定义了对其他库传递依赖(传递依赖 ---> 比如每个xxxstarter中有很多jar包,项目中还需要依赖xxxstarter,而且xxxstarter需要依赖一些其他的jar包,所以这个项目就依赖传递了这些jar包),这些东西加在一起即支持某项功能,简单的说起步依赖就是将具备某种功能的坐标打包在一起,并提供一些默认的功能(主要解决项目管理版本依赖发生冲突的问题)
    2. 自动装配1. 指得是Springoot会自动将一些配置类的bean注册进ioc容器中,我们可以在需要的地方使用@Autowired@Resource等注解来使用
      2. 自动表现的形式就是我们只需引入我们想要功能的包,相关的配置不用我们管,Springboot会自动注入这些bean,我们直接使用即可
      3. 主要解决Spring配置繁琐的问题

3. Springboot项目主程序启动类位置

  1. Springboot项目主程序启动类会扫描当前主程序所在的包及其子包的内容(注解 … …)

4.Springboot单元测试编写例子

  1. @SpringBootTest标记该类是springboot的单元测试类,并加载项目的applicationContext上下文环境
  2. @RunWith证明是测试启动器,并且当前的环境处于spring的环境中,加载springboot的注解
    @SpringBootTest
    @RunWith(SpringRunner.class)
    class Springboot01DemoApplicationTests {
    
        @Autowired
        private HelloController helloController;
    
        @Test
        void contextLoads() {
            String demo = helloController.demo();
            System.out.println(demo);
        }
    }
    

5.Springboot热部署

  1. 引入依赖
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
    </dependency>
    
  2. idea属性设置
    在这里插入图片描述
  3. 使用组合快捷键Ctrl+Shift+Alt+/(windows)或者command+shift+option+/(mac)打开Maintenance选择框,选择Registry,将红色框的选项打钩即可
    在这里插入图片描述

6.SpringBoot全局配置文件

  1. application.properties配置文件:里面可以定义SpringBoot项目的相关属性(系统属性,环境变量,命令参数也可以是自定义配置文件的名称和位置)

  2. yaml配置文件:1. YAML文件格式是SpringBoot支持的一种JSON超文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观并且容易被电脑识别的数据序列化格式。

    person:
      # 普通数据类型
      id: 2
      name: lucy
      # 数组或单列集合
      hobby: [吃饭,睡觉,打豆豆]
      family: [father,mother]
      # map类型
      map: {k1: v1,k2: v2}
      # 实体对象类型
      pet: {type: dog,name: 旺财}
    

7.配置文件的属性值注入

  1. 如果配置的是SpringBoot已有属性,那么SpringBoot内部将会自动扫描并且读取配置文件中的属性并覆盖默认属性

  2. 如果是自定义属性,还必须要在程序中注入这些配置属性方可生效

  3. 使用@ConfigurationProperties注入属性

    	@Component
    	@ConfigurationProperties(prefix = "person")
    	public class Person {
    		private int id; 
    	
    	public void setId(int id) {
    		this.id = id;
    	 	}
    	 }
    
  4. 使用@Value注入属性

    @Component
    public class Person {
    
    	//将配置文件的属性值注入到注解标记的属性中
    	@Value("${person.id}")
    	private int id; 
    }
    

8.自定义配置

  1. @PropertySource:该注解用于指定自定义配置文件的具体位置和名称

  2. @Configuration1. 使用该注解编写自定义配置类,SpringBoot会自动扫描和识别配置类,从而替代Spring框架中的XML配置文件。2. 当定义一个配置类后,还需要在类的方法上使用@Bean注解进行组件配置,将方法的返回对象注入到Spring容器中,并且组件默认名称使用的是方法名,也可以使用注解属性value/name自定义组件名称

    //标明该类为配置类
    @Configuration 
    public class MyConfig {
    
        //将返回值对象作为组件添加到spring容器中,标识id默认是方法名
        @Bean(name = "iservice")   
        public MyService myService() {
    
            return new MyService();
        }
    }
    
    @Autowired
    private ApplicationContext applicationContext;
    @Test
    public void iocTest() {
    System.out.println(applicationContext.containsBean("myService"));
    }
    

9.随机数设置及参数间引用

  1. 随机数设置SpringBoot内嵌RandomValuePropertySource类,对于一些隐秘属性值,测试用例属性值进行随机注入
  2. 语法${random.xx} xx表示需要指定生成的随机数类型和范围,他可以随机生成整数,UUId,字符串
    在这里插入图片描述
  3. 参数间引用
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值