lyuweigh

SpringBoot 入门

假装 == == 是高亮 黄色高亮!
后面的配置文件信息等可以用到再学,舍弃部分

@SpringBootApplication : 标注在一个类上,说明这个类是SpringBoot的主配置类,SpringBoot

就应该运行这个类的main方法来启动Spring应用 它唯一

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
        @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
 
  • @SpringBootConfiguration : 标注在某个类上,表示该类是SpringBoot的某个配置类

  • @Configuration: 用来标注一个类,表名这个类是Spring容器的配置类----相当于配置文件,配置类也是配置容器中的一个组件

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

@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
  • @AutoConfigurationPackage: 自动配置包

    • @Import(AutoConfigurationPackages.Registrar.class): Spring的底层注解,给容器导入一个类
    • AutoConfigurationPackages.Registrar.class: 这个类,会将主配置类,也就是@SpringBootApplication 标注的类,所在的包及所有子包中的组件扫描到Spring容器中
  • @Import(AutoConfigurationImportSelector.class)

    • AutoConfigurationImportSelector.class 将所有需要导入的组件以全类名的方式返回;这些组件就会添加到Spring容器中
      • 这个类会自动给Spring容器到导入和很多的自动配置类(xxxAutoConfiguration:就是给容器中导入这个场景所需要的所有组件,并且配置好)

      • 该配置文件所对应的整合包如下

    SpringBoot在启动的时候回自动从Jar包中的META-INF/spring.factories的配置文件中获取AutoConfigurationImportSelector指定的值,并且将这些值导入到容器中,自动配置类就生效了

以前需要我们手动配置的东西,现在自动配置类都会帮我们直接配置


SpringBoot 描述:

SpringBoot 从Spring4.0 开始

对Spring整个技术栈进行整合

优点:

  1. 快速搭建项目
  2. 嵌入式Servlet容器,无需打包
  3. 自动的版本控制
  4. Starters自动配置,简化开发,也可以修改默认配置
  5. 无需配置XML,无代码生成
  6. 提供生产环境的监控
  7. 于云计算天然集成

微服务介绍

微服务:是一种架构风格

一个应用, 应该是一组小型服务,每个不同的服务之间通过HTTP的方式进行沟通

每一个服务都应该是可替换的,可独立的,可升级的 独立单元

一. SpringBoot简单使用

1. SpringBoot 编写 HelloWord

1.1 创建一个Maven工程,导入依SpringBoot赖

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

1.2 编写一个主程序

/**
* @SpringBootApplication 来标注一个Spring主程序类 说明这是一个Springboot应用
*/
@SpringBootApplication
public class TestApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
}

1.3 编写业务代码

@Controller
public class Hello2Controller {
 
    @RequestMapping("h")
    @ResponseBody
    public String test() {
        return "hello Spring boot2";
    }
}

业务代码,可以使用SpringMvc的原始注解,也可以使用SpringBoot提供的注解,

SpringBoot的注解对原始MVC注解做了简化 但是他们功能相同

1.4 部署SpringBoot项目

  1. 打jar包
<!--这个插件可以将应用打成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  1. 通过命令 java -jar xxxxx.jar 启动项目

    访问浏览器即可

1.5 引入父项目

版本仲裁包 spring-boot-dependencies

这个项目是所有starter的父项目,对其他的starter做依赖管理  
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>
 
spring-boot-starter-parent项目所依赖的父项目,还依赖另外一个项目
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.0.2.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
</parent>
 
 
spring-boot-dependencies
该项目中定义了对jar包版本控制的管理
他才是来真正管理SpringBoot所有的依赖版本的东西

1.6 导入的依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
  1. spring-boot-starter-web: SpringBoot场景启动器;

    • 帮我们导入了 web项目所需要的所有必须包,并且依赖的版本都收到仲裁器控制
  2. SpringBoot 将所有需要的包,都抽取成一个个spring-boot-starter-* , 如果有需要就进行引入

2. 快速创建一个SpringBoot项目

2.1.选择创建Spring initalizr工程,所有的ide工具都支持

2.2填写坐标名,项目名不支持大写

2.3选择构建项目想要加入的功能

2.4然后下一步下一步,项目ide回去官网自动下载项目配置

2.5导入成功后的项目全貌

这样整个架子就直接搭建好了,我们只需要写自己的逻辑就可以了

2.6 resource文件夹中的目录结构

  • static : 保存所有的静态资源; js css images
  • templates : 保存所有的模板页面;(Spring boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freenaker,thymeleaf);
  • appliocation.properties: Spring 应用的配置文件;

二.SpringBoot配置

1. SpringBoot的全局配置文件

配置文件名称固定

  • application.properties
  • application.yml

支持两种类型的配置文件,他们作用相同

配置文件的作用: 修改SpringBoot配置的默认值,对其默认配置进行覆盖

1.1 两种配置文件的区别

application.properties

server.port=80

application.yml

server:
  port: 81

分类:

技术点:

相关文章: