SpringBoot入门(一)

Spring Boot是快速搭建Spring工程的脚手架,简化配置与依赖关系(约定大于配置),让我们把精力集中在业务部分




2 简单入门事例

创建一个Hello World的Web工程

2.1 创建Maven工程

直接Next -> 填写工程坐标 -> 创建

2.2 添加pom.xml依赖

父工程管理jar包,没有业务代码,子工程需要jar包时不用写版本号

<!-- 父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> </parent> <!-- 设置JDK版本 --> <properties> <java.version>1.8</java.version> </properties> <!-- 添加依赖 --> <dependencies> <!-- 场景启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> 2.3 创建主程序类Application

注意Application要放在根目录下,因为会去Application的同级目录去扫描,注意左边有层级结构

@SpringBootApplication public class Application { public static void main(String[] args) { //SpringBoot启动 SpringApplication.run(Application.class,args); } } 2.4 创建Controller

@RestController public class HelloController { //请求映射 @RequestMapping(value = "hello",method = RequestMethod.GET) public String hello(){ return "Hello Worlddddd"; } } 2.5 启动并测试

启动SpringBoot应用

打开浏览器测试成功

总结

父工程管理各种依赖,Spring已经帮我们测试好各版本之间的关系了,所以添加依赖不用版本号

启动器帮我们导入各种场景所需要组件

@SpringBootApplication标注说明这个类是主配置类,运行该类的main方法来启动SpringBoot应用




3. 自动配置

我们来看看@SpringBootApplication这个组合注释,底层还包括两个注解

@SpringBootConfiguration:SpringBoot的配置类,标注在类上表示该类是个配置类

它底层又有@Configuration:Spring的注解,放在配置类上

配置类--配置文件:配置类也是容器中的一个组件:@Component

@EnableAutoConfiguration:开启自动配置,以前需要配置的东西,SpringBoot帮我们自动配置

它底层有@AutoConfigurationPackage:自动配置包

Import(AutoConfigurationPackages.Registrar.class):Spring底层注解,给容器导入组件,即将主程序同级及下面子包所有组件扫描到Spring容器中

@Import(.AutoConfigurationImportSelector.class):导入组件的选择器,会给容器导入非常多的自动配置类(xxxAutoConfiguration),并配置好对应的组件

有了自动配置类就免去了手动编写配置注入组件了,其实现由SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)完成

总结:SpringBoot启动时从类路径下META_INF/spring.factories获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作



4. 配置文件

名字是固定以application开头的

有两种方式application.properties和application.yml

用来修改SpringBoot默认配置

4.1 读取配置文件(这里以yml为事例)

首先要在resources下创建application.yml配置文件,然后在里面输入需要被读取的数据

jdbc: driverclassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC username: root password: howl

创建bean类,把配置的属性值写入bean对象中

需要用到@ConfigurationProperties()注解,该注解需要导入依赖

只有这个对象是容器中的组件,才能使用容器的@ConfigurationProperties功能

/* * @ConfigurationProperties把配置文件的属性注入该类中 */ @Component @ConfigurationProperties(prefix = "jdbc") public class JDBC { private String driverclassName; private String url; private String username; private String password; //各种Getters和Setters }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfsxp.html