什么是SpringBoot:
Spring Boot 是一个 整合型框架它可以优化配置 相比传统的ssm框架少了大量是xml配置 我经常把spring boot 的项目看做一个jar包 应为使用它能快速的启动一个项目!
优点:简化配置 方便管理 能够快速开发一个项目 !
缺点:由于导入大量jar包,使项目更加臃肿!
如何快速的使用spring boot?
1.导入父依赖:
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
2.加入maven 相对于依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3.编写守则
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
PS:关于@RestController和@Requestmap注解
我们的第一个注释Example类是@RestController。这被称为刻板印象注释它为阅读代码的人和Spring提供了提示,说明类扮演了特定的角色。在这种情况下,我们的类是一个web。@Controller,所以Spring在处理传入的Web请求时会考虑它。
写@RestController 后 可已不用写@ResponseBody,并且以josn形式响应给前端,@RestController 底层下有@ResponseBody,
这个@RequestMapping注释提供“路由”信息。它告诉Spring,任何带有/路径应映射到home方法。这个@RestController注释告诉Spring将结果字符串直接呈现给调用者。
关于:@EnableAutoConfiguration注解
第二个类级注释是@EnableAutoConfiguration。这个注释告诉SpringBoot根据您添加的JAR依赖项“猜测”如何配置Spring。自spring-boot-starter-web加上Tomcat和SpringMVC,自动配置假设您正在开发一个Web应用程序,并相应地设置Spring。
编写引导类
@EnableAutoConfiguration :启用自动配置
@ComponentScan :开启注解扫描
@@SpringBootApplication:源码下包含以上2个注解,可直接使用
@SpringBootConfiguration:相当@Configuration
,申明一个类是java配置类,通常一个工程中只包含一个该注解
这里我们可以使用@SpringBootApplication注释 进行简化
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
5.Springbean和依赖注入
您可以使用任何标准的SpringFramework技术来定义bean及其注入的依赖项。为了简单起见,我们经常发现@ComponentScan(找到您的bean)并使用@Autowired(进行构造函数注入)工作得很好。
如果按照上面的建议构造代码(将应用程序类定位在根包中),则可以添加@ComponentScan没有任何争论。所有应用程序组件(@Component, @Service, @Repository, @Controller(等等)自动注册为Springbean。
6.Spring Boot 的配置文件有哪几种格式?它们有什么区别?
我们可以点击:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
然后会看到3种配置文件
这3种配置文件的优先级别为:
properties > yaml > yml
也就是说当 yml 文件配置了端口为 80 后我在配置一个 properties 文件 端口喂8088 那么8088端口就会覆盖80 端口
7.springboot的静态页放在哪里?
放在resources的static
这个是系统默认配置,如果我们并不想将资源放在系统默认的这五个位置上,也可以自定义静态资源位置和映射,自定义的方式也有两种,可以通过 application.properties 来定义,也可以在 Java 代码中来定义,
SpringBoot 的Java配置
SpringBoot的常用Java配置的注解有:
@Configuration:声明一个代替xml文件的注解
@Bean:声明在方法上,将方法的但绘制加入Bean容器,代替标签
@Value :属性注入
@PropertySource:指定外部属性文件
以下是我写的Demo 代码图:
引用 Jdbc 连接池 案例
第一:
第四 接口注入:
对以上的方法还可以改进为:
最后我们只需要启动我们带有@SpringBootApplication 的类即可
这里需要注意下的就是带了@SpringBootApplication 的类是有应用范围的它的作用域为同类级包下 也就说 在它包下就无法使用了
ps:重点
**自定义一些springMVC的配置,同时又保持mvc的特性(例如:,格式化器,视图控制器,消息转换器 等等),
你应该自定义一个(类)并让该类实现 (WebMvcConffigurer),并添加@Configuration 注解 ,注意千万不要加@EnableWebMvc 注解,
如果你想要自定义HandlerMapping,HandlerAdapter,ExceptionResolver 等组件,你可以创建一个WebMvcRegistrationsAdapter实例来提供以上组件。
相反如果你想完全自定义springMvc,不保留SpringBoot提供的一切特性,你就可以直接使用@Configuration 注解 和 @EnableWebMvc 注解**
以下为练手代码: