兄弟们,学习SpringBoot不能光说不练,下面是第一个案例,让我们了解下SpringBoot是怎么运行起来的吧。
SpringBoot项目可以基于maven构建的,实际上maven是一个Java项目的外挂,当使用maven之后,项目的构建、编译、运行都交给这个外挂管理了,但是也要符合maven对项目结构等方面规范要求。
maven就像一个应用生产的流水线,按规矩来,可以快速批量生产标准应用。
所以基于maven构建的SpringBoot应用,那也是标准件,所以Spring官方也提供了标准件的生产工具,通过该工具可以直接生成一个SpringBoot应用,我们直接导入开发工具(eclipse或idea或其他工具)使用即可,省的一步步配置麻烦,反正都是按maven规范定好的项目结构。
OK,这个可以直接生成SpringBoot的工具就是SpringInitializr啦。
maven项目的结构都是确定的,然后maven会根据pom.xml配置自动导入相应的jar包,并自动帮我们构建项目,我们只需要运行项目即可,就是这么舒心。
spring-boot-hello:项目名称--src/man/java:java源代码--src/main/resources:配置文件、图片、网页等静态资源----application/properties:项目配置文件,配置项目访问路径、启动端口等信息--src/test/java:测试代码--target:项目编译打包后存储位置--pom.xml:maven配置文件,用于配置jar包依赖及项目构建所需信息项目如何运行的详解1、pom.xml分析既然是maven管理的,就得看maven是怎么把这个项目跑起来的,首先maven先看配置文件pom.xml,文件内容如下。
@SpringBootApplicationpublicclassSpringBootHelloApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringBootHelloApplication.class,args);}}说实话,看到这段代码,太平庸了,就是一个main方法,然后SpringApplication.run表示启动程序,启动改程序需要的参数是SpringBootHelloApplication.class和args,很显然,args是启动参数,我们啥也没设置,所以真正的内涵都在SpringBootHelloApplication.class这个类里面。
然后我们自信看下这个类,就是光秃秃的一个普通类嘛,搞不懂为啥这么牛能启动大名鼎鼎的SpringBoot,等等,好像这个类有一个注解@SpringBootApplication,这个注解是唯一跟我们之前普通类不同的地方,看来所有的窍门都在这个注解上。
刚刚我们分析了,SpringBoot启动时,有用的参数也就SpringBootHelloApplication.class,也是就是SpringBootHelloApplication类信息。
@SpringBootConfiguration@EnableAutoConfiguration@ComponetScan这几个很眼熟啊,看到这几个注解,我就基本明白咋回事了。
首先@SpringBootConfiguration,看到Configuration这是个Spring配置类,也就是说本类会被Spring容器管理,并加载里面的配置信息,比如bean定义等,此处虽然啥也没定义,但是现在已经有Spring容器啦。
其次,@EnableAutoConfiguration,这个是启动自动配置的意思,啥是自动配置,就是把所有配置类都加载到容器,比如项目中有多个@Configuraion,统统纳入Spring管理,这样项目中所有的配置、bean定义都可以在容器中管理啦。
最后,@ComponetScan,制定了扫描包的范围,当然配置类很多,也不能不分你我统统都用了,可以通过该注解指定扫描的包的范围。注意默认情况下,就是不写参数的情况下,SpringBoot会扫描@SpringBootApplication注解的类所在的包及其子包。
哈哈,到这就很清晰了,首先maven通过pom.xml的配置,为项目的启动奠定了编译基础。
然后当我们启动时,通过@SpringBootApplication注解,启动了Spring容器,并将符合扫描范围的配置类及bean统统纳入了容器管理。
看明白了,就是通过注解整合和自动配置,将之前啰里啰嗦的各类配置自动化了,完事。
所以只要对Spring技术很熟悉,只要稍微了解下SpringBoot的结构,就能上手了,就这么简答。