Spring学习笔记(1)

本文章根据B站up主尚硅谷视频:https://www.bilibili.com/video/BV19K4y1L7MT
以及其文档https://www.yuque.com/atguigu/springboot/rmxq85和官方文档https://spring.io/projects/spring-boot搬运总结。

一、Spring与SpringBoot
1.Spring能做什么

(1)微服务

(2)响应式编程

(3)分布式云开发

(4)Web开发

(5)无服务开发:函数式开发,节省服务器资源

(6)事件驱动服务

2.SpringBoot

​ 将上述的功能进行整合,简化配置等流程。

(1)Servlet Stack:最原生的技术栈。

(2)Reactive Stack:异步数据流,响应式应用,尽可能占用少量的资源。

3.适配器

​ JAVA8实现接口的默认实现。

二、为什么用SpringBoot
1.SpringBoot的优点
  • 创建独立Spring应用
  • 内嵌web服务器
  • 自动starter依赖,简化构建配置
  • 自动配置Spring以及第三方功能
  • 提供生产级别的监控、健康检查及外部化配置
  • 无代码生成、无需编写XML
2.SpringBoot的缺点
  • 人称版本帝,迭代快,需要时刻关注变化
  • 封装太深,内部原理复杂,不容易精通
三、SpringBoot时代背景
1.微服务
  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
2.分布式

(1)分布式的困难

  • 远程调用
  • 服务发现
  • 负载均衡
  • 服务容错
  • 配置管理
  • 服务监控
  • 链路追踪
  • 日志管理
  • 任务调度

(2)分布式的解决

四、如何开启项目
五、项目配置

在一个文件中设置配置

项目配置的官方文档

六、创建可执行的jar

​ 直接在JVE环境中运行

七、了解自动化配置原理

​ 关键: pom.xml文件的配置,设置配置后,在项目中可直接使,声明了开发中常用的依赖版本号

八、底层注解

1.引入其它版本的驱动
 <properties>
     <mysql.version>5.1.43</mysql.version>
 </properties>
2.示例代码
package com.atguigu.boot;


import org.springframework.boot.SpringApplication;  // SpringApplication.run(主类.class, args)
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

// 主程序类
// 注解--@SpringBootApplication: 这是一个SpringBoot应用
@SpringBootApplication
public class MainApp {
    public static void main(String[] args){
        // 1. 返回IOC容器,包含容器中的所有组件
        ConfigurableApplicationContext run = SpringApplication.run(MainApp.class, args);
        String[] names = run.getBeanDefinitionNames();
        // 2. 查看容器中的所有组件
        for(String item: names) {
            System.out.println(item);
        }
        // 3. 从容器中获得组件
        Pet tom01 =  run.getBean("tom", Pet.class);
        Pet tom02 = run.getBean("tom", Pet.class);
        System.out.println("组件:"+(tom01==tom02));
    }
}
1.@Configuration
2.@Import
3.@Conditional

​ 条件装配:满足Conditional指定的条件,则进行组件注入

4.@ImportResource

​ 导入配置文件(config.xml

5.@ConfigurationProperties

​ (1)配置属性绑定

​ (2)prefix参数:通过prefix参数引入配置参数:

/**
 * 只有在容器中的组件,才会拥有SpringBoot提供的强大功能
 */
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {

    private String brand;
    private Integer price;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                '}';
    }

​ (3)开启属性配置功能

@Configuration
@EnableConfigurationProperties(Car.class)
//1、开启Car配置绑定功能
//2、把这个Car这个组件自动注册到容器中
public class MyConfig {
}

​ (4)实例–配置MySQL

  1. application.properties文件中添加配置

    mysql.account=12345
    mysql.password=123
    
  2. 创建类文件MySQL.java

package com.atguigu.boot.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component  // 把组件加入容器中。
@ConfigurationProperties(prefix = "mysql")  // 与application.properties文件对应
public class MySQL {
    private String Account;
    private String Password;
    public String getAccount() {
        return Account;
    }
    public String getPassword(){
        return Password;
    }

    public void setAccount(String account) {
        this.Account = account;
    }

    public void setPassword(String password) {
        this.Password = password;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值