SpringBoot-基本

简介

  1. 简化Spring应用开发的一个框架
  2. 整个Spring技术站的一个大整合
  3. J2EE开发的一站式解决方案

微服务

  1. 微服务:架构风格
  2. 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通
  3. 每一个功能元素最终都是一个可以独立替换和独立升级的软件单元

基本配置

  1. pom.xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 这个插件可以将应用打包成一个可执行的jar包 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  1. 编写一个主程序
/**
 * @SpringBootApplication : 标注一个主程序类,说明是一个boot应用
 */
@SpringBootApplication
public class HelloWord {
    public static void main(String[] args) {
        SpringApplication.run(HelloWord.class,args);
    }
}
  1. 控制器类
@Controller
public class MyController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}
  1. 启动main程序即可,你甚至不用配置Tomcat

依赖详解

  1. 父项目
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>
<!-- 该父项目也有父项目 -->
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>1.5.9.RELEASE</version>
   <relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<!-- 爷爷项目真正管理SpringBoot应用里的所有依赖版本 -->
  1. spring-boot-starter-web
<!-- starter:spring-boot场景启动器 -->
<!--
 1. -web :帮我们导入了web模块正常运行所依赖的组件
 2. Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器)
 3. 要用什么功能就导入什么场景的启动器
 -->

主程序类,主入口类

@SpringBootApplication :spring Boot应用标注在某个类上,说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个main方法来启动SpringBoot应用

@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 {
  1. @SpringBootConfiguration
    • 这是一个springboot的配置类(配置文件,也是容器的一个组件 @Component)
    • Configuration:配置类上来标注这个注解
  2. @EnableAutoConfiguration: 开启自动配置功能
    将主配置类(@SpringBootApplication)的所在包及下面所有子包里面的所有组件扫描到Spring容器
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {

@AutoConfigurationPackage : 自动配置包
/*
 1. @Import(AutoConfigurationPackages.Registrar.class)
 2. Spring的底层注解@Import,给容器中导入一个组件
 3. 导入的组件由AutoConfigurationPackages.Registrar.class决定
 4. 将主配置类(@SpringBootApplication)的所在包及下面所有子包里面的所有组件扫描到Spring容器
 5. (@Controller、@Service....)
*/
@Import(EnableAutoConfigurationImportSelector.class)
/*
 1. 给容器中导入组件
 2. EnableAutoConfigurationImportSelector:导入哪些组建的选择器
 3. 将所有导入的组件以全类名的方式返回
 4. 会给容器中倒入非常多的自动配置类(xxxAutoConfiguration)
 5. 就是给容器中导入这个场景的所有组件并配置到这些组件
 6. (Mq,redis..)
 7. 主要方法SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)
 8. Spring Boot在启动的时候从"META-INF/spring.factories"中获取EnableAutoConfiguration指定的值(相当于properties)
 9. J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar
*/

IDEA快速启动

在这里插入图片描述

  1. 正常输入相关信息,并选择要添加的模块启动成功
  2. 项目结构

在这里插入图片描述

  • static:保存所有的静态资源;js css images;
  • templates:保存所有的模块页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf)
  • application.properties:Spring Boot应用的配置文件,可以修改一些默认配置(如:server.port=8081)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值