SpringBoot入门

“学而不思则罔,思而不学则殆”
本文主要用来参照SpringBoot学习视频,记录新手SpringBoot的学习笔记

SpringBoot简介

  • SpringBoot简化Spring开发的一个框架
  • 整个Spring技术栈的一个大集合(包含各种starter)
  • J2EE一站式开发解决方案

微服务

相关联的时代背景:微服务
微服务是一种架构风格,相比于之前的ALL IN ONE的风格;微服务每一个应用都是一组小型服务,可以通过HTTP的方式进行通信;同时每个功能元素最终都可以进行独立的升级和替换

HelloWorld项目构建

  1. 建立Maven项目
    先不使用Initializer,只是使用IDEA建立一个Maven项目
  2. 引入starter
    maven工程最重要的是配置pom.xml,对于SpringBoot项目,必须要配置starter的parent
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
 </parent>

对于一般的web项目,同时需要引入spring-boot-starter-web依赖,该依赖内嵌tomcat,后面项目可以不用生成war放置在tomcat容器中;只需要生成可执行jar包即可运行

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 创建主程序
    主程序使用@SpringBootApplication注解
@SpringBootApplication
public class HelloWorldMainApplication {
    public static void main(String[] args) {
        //Spring应用启动起来
        SpringApplication.run(HelloWorldMainApplication.class, args);
    }
}
  1. 创建Controller和Service
@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello Springboot";
    }
}
  1. 启动运行
    创建完成后便可以启动运行,访问http://localhost:8080/hello便可以

  2. 便捷部署(生成可执行jar包,其中内嵌tomcat可以直接运行)
    在POM文件中对增加build插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build> 

HelloWorld项目探究

  1. 父项目spring-boot-starter-parent
    其中spring-boot-starter-parent的父项目为spring-boot-dependencies,它来真正管理SpringBoot应用里面所有的版本依赖关系(使用Spring框架会遇见各种版本不匹配的问题);以后在项目中导入依赖默认是不需要写版本号的(除非在dependencies中没有相关的声明版本号)

  2. 启动器starter
    spring-boot-starter-web;SpringBoot将所有的场景都抽取出来,做成一个个的starter,只需要引用相关的starter,相关的场景所有的依赖都会导入进来。

  3. 主程序类、主入口类
    使用@SpringBootApplication作为程序的主入口,相关详细的注解如下

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication 

其中重点的注解为 @EnableAutoConfiguration,该注解会将主配置(@SpringBootApplication标注的类)的所有包及一下所有的子包内的所有组件扫描到Spring容器中
@Import({AutoConfigurationImportSelector.class})
实际就是给容器导入这个场景所需要的所有组将,并配置好这些组件。

使用Spring Initializer快速建立工程

使用IDEA或者spring官网上,可以直接勾选相应的starter,构建相应的工程。
其中resource文件夹的目录结构:

  • static:保存所有的静态资源:js css images
  • template:保存所有的模板页面(Spring
    Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面),可以使用模板引擎(freemarker、thymeleaf)
  • application.properties:Spring Boot应用配置文件,可以更改一些默认配置文件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章