二、SpringBoot初运行及介绍

只是个人学习笔记,如果需要答复的话直接在文章底部留言,感谢。

 

    1. 配置

 

须掌握以下内容:

    1. Spring框架的使用经验
    2. 熟悉使用Maven进行项目构建和依赖管理
    3. 熟练使用Eclipse或者IDEA

 

环境约束:

    1. JDK1.8
    2. Maven3.x
    3. IDEA2017
    4. SpringBoot 1.5.9.RELEASE

 

MAVEN 设置

在settings.xml配置文件的profiles添加

二、SpringBoot初运行及介绍_第1张图片

 

IDEA设置

Configer - setting - Build Execution Deployment - Build Tools - Maven的

Maven home directory 选择自己的maven

使用User settions file 和Local repository

 

 

 

    1. HelloWorld

以浏览器发送hello请求,服务器接收请求并处理,响应发回helloworld字符串:

 

    1. 创建一个maven工程 jar

IDEA - Create New Project - 左侧Maven - 右侧选中jdk -next

    • GroupId(com.huangyichun) - ArtifactID(Spring-boot-01-helloworld) - next - Project location (D:\\Spring)

 

 

          

    1. 导入Spring boot 相关的依赖

spring官网给出实例 projects.spring.io/spring-boot/

二、SpringBoot初运行及介绍_第2张图片

    1. 继承了一个父项目
    2. 导入了一个starter-web模块
    3. 编写一个主程序,用来启动Spring主程序
      1. 在main - java 内建一个 com.huangyichun.HelloWorldMainApplication
      2. 创建了后还不够 需要告诉Spring是个Application

@SpringBootApplication

标注一个主程序类,说明是一个SpringBoot项目

    1. 启动方式

SpringApplicaiton.run(主程序类.class, args);

 

二、SpringBoot初运行及介绍_第3张图片

    1. 编写相关的业务逻辑

 Controller/Service

在com.huangyichun下创建一个HelloController在Controller包下

    1. 这个类是个Controller

给他一个@Controller注解

创建 public String hello(){} 注解@RequestMapping("/hello")

Return "hello world!";

再注解 @ResponseBody 因为你有返回值

并且返回的是Body 内容(应该是这个意思)

 

二、SpringBoot初运行及介绍_第4张图片

    1. 运行只需要运行主方法就OK

发送请求,在console能看到端口8080,则直接访问

localhost:8080/hello

 

 

 

    1. 简化部署

https://docs.spring.io/spring-boot/docs/1.5.22.BUILD-SNAPSHOT/reference/html/

里面有个一maven依赖,导入到项目

可以将应用打包成一个可执行的jar包,服务器无需安装各种东西,

直接运行

二、SpringBoot初运行及介绍_第5张图片

 

IDEA左下角,菜单 - 右边的侧栏 - Maven Projects - spring-boot-01-xxx -

Lifecycle(生命周期) - package

打包完成,在console里看到打包号的目录 building jar :

直接使用 java -jar jar包的命令使用

 

    1. Hello World 探究

 

    1. Pom.xml 文件
      1. 依赖父项目org.springframeword.boot - spring-boot-starter-parent

Starter-parent 点进去 会发现还有一个父项目(一般做依赖)

Spring-boot-dependencies 真正管理spring Boot应用依赖管理

规定了很多版本……摩多,后面来说

数据库的驱动

-》 Spring-boot-dependencies  版本仲裁中心

所以我们导入依赖默认是不需要写版本的,当然也可以写

有些不在的就需要我们自己写

    1. Starter-web依赖

Spring Boot 帮我们自动仲裁了版本

Spring-boot-starter:spring-boot 场景启动器

web依赖 starter tomcat spring-web hibernate-validator(数据校验)

Jackson-databind spring-webmvc

 

    1. Spring Boot 将所有的功能场景都抽取出来,做成一个个Starters(启动器),只需要引入这些starters,相关场景的所有依赖都会导入进来,需要用什么,就导入什么场景的启动器。

 

    1. 主程序类(主入口类)
      1. @SpringBootApplication: : Spring Boot 应用标注在类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的Main方法来启动SpringBoot应用。

 

二、SpringBoot初运行及介绍_第6张图片

@SpringBootConfiguration Spring Boot的配置类:

标注在某个类上,表示这个是一个Spring Boot的配置类

@Configuration 配置类上 来标注这个注解

配置类---配置文件(配置类也是容器中的组件@Component)

 

@EnableAutoConfiguration 开启自动配置功能

以前我们需要配置的东西,Spring Boot帮我们自动配置

告诉Spring开启自动配置功能,这样自动配置才能生效。

二、SpringBoot初运行及介绍_第7张图片

 

@AutoConfigurationPackage 自动配置包

@Import(AutoConfigurationPackages.Registrar.class)

@Import Spring的底层注解 给容器中导入一个组件;

AutoConfigutarionPackages.Refistrar.class;

这里出错了 原文:

将主配置类 @SpringBootApplication标注的类 所在的包及下面所有组件扫描到Spring容器中

所以能将controller下的包扫进来。

改为 componentScan的功能

AutoConfigurationPackage是将组件收集起来,供后面其他注解的使用

 

@Import(EnableAutoConfigurationImportSelector.class) 导入哪些组件的选择器

EnableAutoConfigurationImportSelector.class继承了

AutoConfigurationImportSelector类

重写isEnabled

在父类中 有一个selectImports

告诉Spring需要导入哪些组件

 

将所有需要导入的组件以全类名方式返回,这些会被添加到容器中。

会给容器中导入非常多的自动配置 xxAutoConfiguration

XXXAutoConfiguration 就是改场景需要的所有组件,并配置好这些组件

二、SpringBoot初运行及介绍_第8张图片

免去了手动编写配置,注入功能组件等功能。

SpringFactoiesLoader.loadFactoryNames(EnableAutoConfigutarion.classs, classLoader)

 

Spring Boot 在启动的时候,从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值。将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们自动配置工作。

 

J2EE的整体整合解决方案和自动配置都在Spring-boot-autoconfigure-1.5.9.RELEASE.jar

 

    1. 使用Spring Initializer快速创建Spring Boot项目

 

IDE都支持使用Spring的项目创建向导快速创建一个Spring项目

File - new - project - Spring Initializr - next

Group

Artiface

Type

Package

-> next

选择模块

安全 Security

数据校验 Validation

缓存 cache

Web - Web

-> next

 

然后项目会联网进行下载

 

 

还记得controller么

@Controller

Public class xxx{

    @ResponseBoby

    @RequestMapping("/hello") // 处理hello请求

    Public String hello(){

        Return "xxxxx";

    }

}

 

@ResponseBody也可以放到class上 表名这个类的所有方法返回的数据直接给浏览器

如果是对象 转为Json数据

 

@ResponseBody

@Controller

还能结合成为@RestController

 

 

默认生成的Spring Boot项目的特点:

    1. 主程序已经生成好了,我们只需要自己的逻辑
    2. resources文件夹中目录结构
      1. Static 保存所有的静态资源;js css images
      2. Templates 保存所有的模板页面 ;Spring Boot 默认jar包使用嵌入式的Tomcat 默认不支持jsp

可以使用模板引擎 freemarker thymeleaf

    1. Application.properties  :Spring Boot 的配置文件

如修改端口

在Application.properties中 server.port = 8081

 

 

你可能感兴趣的:(Springboot,Springboot)