springboot介绍项目 springboot自动配置原理
一、代码实现1. 创建maven工程,普通的java工程2. 添加SpringBoot的起步依赖SpringBoot要求,项目要继承SpringBoot的起步依赖
spring-boot-starter-parent
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent>
SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
3. 编写SpringBoot引导类引导类必须放在与controller等包同级目录
package com.xiaojian; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}}
4. 编写Controller类 package com.xiaojian.controller; ? import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; ? @Controller public class QuickController { ?@RequestMapping("/quick")@ResponseBodypublic String quick(){return "hello SpringBoot";} }
【springboot介绍项目 springboot自动配置原理】@ResponseBody 必须加上 。
5. 测试浏览器访问 : localhost:8080/quick 显示: hello SpringBoot
二、入门解析1.SpringBoot代码解析
- 所有SpringBoog工程中,都要在pom.xml添加父工程依赖(spring-boot-starter-parent),后面进行源码分析
- 以功能为单位,如需要web功能在浏览器进行访问,秩序添加依赖(spring-boot-starter-web)
- @SpringBootApplication,声明该类是SpringBoot的引导类 run方法运行SpringBoot引导类,参数是引导类的字节码对象
@SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class);} }
2.SpringBoot工程热部署(好东西啊)我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在pom.xml中添加如下配置就可以实现这样的功能,我们称之为热部署
<!--热部署配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId> </dependency>
ps:IDEA进行SpringBoot进行热部署失败的解决方案- Setting -> Compiler -> Build project automatically
- 然后 Shift+Ctrl+Alt+/,选择Registry,在列表中找到 compiler.automatically.allow.when.app.running 打钩 完成
- 分析spring-boot-starter-parent spring-boot-starter-parent中也有父依赖spring-boot-starter-dependencies,从中可以看到一部分坐标的版本、依赖管理、插件管理已经定义好,所以我们的SpringBoot工程继承spring-boot-starter-parent后已经具备版本锁定等配置了 。所以起步依赖的作用就是进行依赖的传递 。
- 分析spring-boot-starter-web spring-boot-starter-web就是将web开发要使用的spring-web、spring-webmvc等坐标进行了“打包”,这样我们的工程只要引入spring-boot-starter-web起步依赖的坐标就可以进行web开发了,同样体现了依赖传递的作用 。在以后需要添加的功能也是同理
@SpringBootConfiguration // 相当于 @Configuration ,配置Spring容器(@Bean,注册bean对象,标注在返回某个实例的方法) @EnableAutoConfiguration // 自动配置 @ComponentScan( // 组件扫描,扫描与引导类同级目录包下的beanexcludeFilters = {@Filter(type = FilterType.CUSTOM,classes = {TypeExcludeFilter.class} ), @Filter(type = FilterType.CUSTOM,classes = {AutoConfigurationExcludeFilter.class} )} )
接口EnableAutoConfiguration(重要)文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
四、SpringBoot项目目录结构resources文件夹
- static:保存所有静态资源,js,css,images;
- templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持jsp页面),可以使用模板引擎(freemarker,thymeleaf)
- application.properties:Spring Boot应用的配置文件;springboot自动配置原理
推荐阅读
- 自我介绍我来学习电商的目的是什么,怎么回答呢
- 巴旦木的介绍?巴旦木的食用注意事项?
- 海蟹一般要蒸多久能熟 蒸海蟹的时间介绍
- 枸杞功效介绍 服用枸杞的好处有哪些
- wps里面怎么倒序数值
- 小白菜一般煮几分钟熟 煮小白菜的时间介绍
- 黑虎虾煮几分钟会熟 煮黑虎虾时间介绍
- 奥迪a4l的空调使用方法 奥迪a4l的空调使用方法介绍
- 烤漆一般多长时间 汽车烤漆的时间介绍
- 冬奥会时间,地点,项目