SpringBoot之核心依赖和自动配置方式
之前介绍了springboot是有多么的好,那么,我们现在通过一个小demo来看他是有多么的强大!
一、核心pom引入
我们可以知道一般的项目引入了的基本包和spring一些连接池,再加上几个配置文件还有应用服务器(或者web服务器),就可以直接运行起来了。
那么springboot要如何做呢?
首先就是核心依赖了:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent>
这个parent是springboot最最核心的引入,所有的配置都在里面,并且是springboot项目必须引入的。
当然现在都是web项目居多,我们还需要引入一个需要的依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
然后可以的话还可以引入一个插件:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
引入这些东西之后,我们可以在一个包中新建一个类,然后写入以下代码:
@Controller @SpringBootApplication @Configuration public class HelloApplication { @RequestMapping("hello") @ResponseBody public String hello(){ return "hello world!"; } public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } }
之后直接用javaApplication 的run方式,我们就可以直接将springboot的这个项目run起来,可以在控制台看到:
然后我们在浏览器中输入:http://localhost:8080/hello
就可以看到如下页面:
这样,我们就启动了一个简单的springboot项目。
二、核心自动配置
我们可以在项目中看到,其实我们就是写了一个类,为什么连tomcat都不用,就可以直接启动一个web程序呢?这一切都是从springboot的配置说起。
还记得我们引入pom了一个spring-boot-starter-web了么,这个就是spring所依赖的web项目模板,我们可以在maven管理器的依赖中找到这些已经默认加载好的东西:
我们可以直观的看到,tomcat,hibernate,还有一些web项目需要用的东西全部都引入到了项目中,在项目启动的时候就是调用的他们,然后我们就相当于吧tomcat也启动了一样的感觉,为我们的开发配置省了不少事情。
然后我们再来看我们写的这个类,为什么可以直接用web来启动呢,根据上一篇文章的介绍,java的配置方式起到了很强的作用,那就是我们可以利用注解去轻易的配置一些我们想要配置的东西,springboot就是利用了这一点。
我们可以看到我们的类上面除了java的@Configuration之外,还有一个是springboot的配置项@SpringBootApplication,这个注解的引入,就默认为我们自动的配置了一些常用的配置。
那么,它都自动为我们配置了什么呢?我们可以找到library的jar包引入,找到一个springboot的autoconfigure来看一下:
我们展开看一下会发现很多熟悉的东西:
是不是看到了很多熟悉的身影呢,我们可以在每个包下面都找到一个带有AutoConfigure的类,这就是用java配置方式写的默认配置:
当然,这些都是默认的配置,我们如果想要自己配置一个组件要怎么把默认的配置取消呢?
其实很简单,因为每个springboot项目都必须有一个核心的带有@SpringBootApplication注解的类作为入口,所以我们只需要在这个注解上消除这个配置类的引入就可以了,
例如:
@Controller @SpringBootApplication(exclude = {MongoAutoConfiguration.class, KafkaAutoConfiguration.class}) @Configuration public class HelloApplication { @RequestMapping("hello") @ResponseBody public String hello(){ return "hello world!"; } public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } }
通过这样用exclude的方式就把mongo和kafka的自动配置去掉了,我们就可以自己进行配置了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 将springboot项目生成可依赖的jar并引入到项目中的方法
- SpringBoot依赖和代码分开打包的实现步骤
- Spring boot数据库依赖详解
- Springboot中依赖注入的三种方式详解
- Spring Boot 打包如何将依赖全部打进去
- SpringBoot中修改依赖版本的方法
- Springboot pom项目间接依赖包版本与预期不符原因解决分析
- SpringBoot中的依赖管理详解
- spring boot idea maven依赖找不到问题处理方法
- SpringBoot将所有依赖(包括本地jar包)打包到项目
- SpringBoot结合Maven项目依赖版本冲突问题解决
- IDEA创建springboot依赖下载很慢的解决方法
相关文章
mybatis-plus之自动映射字段(typeHandler)的注意点及说明
这篇文章主要介绍了mybatis-plus之自动映射字段(typeHandler)的注意点及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-04-04
最新评论