springboot项⽬简单介绍、启动和部署
springboot项⽬介绍,启动和部署
springboot介绍
⼤家知道springboot是基于spring研发出来的,但是要知道springboot其实并不是对spring功能的增强,⽽是提供了⼀种快速使⽤spring 的⽅式或者说是⼯具。
springboot集合了⼤量的第三⽅库,Spring Boot应⽤中这些第三⽅库⼏乎可以是零配置的开箱即⽤,⼤部分的 Spring Boot 应⽤都只需要⾮常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。
- 优点
– 1.springboot本⾝就是基于spring诞⽣的,可以说只要spring能实现的功能,springboot都能实现,功能强⼤。
– 2.⽅便构建项⽬,我们都知道以前在使⽤spring框架构建项⽬的时候,免不了很多的配置⽂件,各种装配bean,现在springboot⼏乎实现了0配置⽂件,它采⽤了java config的⽅式,对spring进⾏配置,采⽤
springboot框架是干嘛的注解配置的⽅式,简化了原先的繁多的配置⽂件,极⾼的提⾼了⼯作效率。通过@Configuration 和@Bean 两个注解完成配置⽂件。
– 3.简化了maven配置,虽然spring4.0的出现似乎也已经做到了⽆xml配置,但是却需要繁多的maven配置,甚⾄达到了数百⾏,如今springboot集合了⼤量的第三⽅库,将⼤量的依赖配置集成简单的maven配置,
springboot项⽬在创建的时候就会⾃带⼀些maven配置,这些配置就已经集成了⼤量的依赖,不在需要开发者耗时耗⼒的去添加依赖配置了。
– 4 简化部署
springboot内部嵌⼊了tomcat,在spring-boot-starter-web⾥可以到,
这样在研发过程中就不在需要tomcat服务器,并且springboot项⽬在打完jar之后,可以直接启动也不需要另外的本地tomcat。也就是说拿到springboot项⽬jar之后,完全可以在⼀台只有jdk的机器上启动了。
springboot启动
上⾯说过了springboot项⽬⾃带了tomcat,所以项⽬启动和部署不需要额外的tomcat服务器了,这⾥关键的是springboot项⽬会有⼀个启动类,这个是springboot项⽬的⼊⼝,
上⾯可以看出启动类需要⼀个关键的注解@SpringBootApplication,看下改注解背后的内容,
@Target(ElementType.TYPE) // 注解的适⽤范围,其中TYPE⽤于描述类、接⼝(包括包注解类型)或enum声明
@Retention(RetentionPolicy.RUNTIME) // 注解的⽣命周期,保留到class⽂件中(三个⽣命周期)
@Documented // 表明这个注解应该被javadoc记录
@Inherited // ⼦类可以继承该注解
@SpringBootConfiguration // 继承了Configuration,表⽰当前是注解类
@EnableAutoConfiguration // 开启springboot的注解功能,springboot的四⼤神器之⼀,其借助@import的帮助
@ComponentScan(excludeFilters = { // 扫描路径设置(具体使⽤待确认)
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
...
}
有个这些,你就可以简单的理解,启动⼀个springboot项⽬,会从启动类⼊⼝进去,通过@SpringBootApplication注解之后⾃动的去扫描加载⼀些javaconfig 配置,启动内置tomcat将项⽬运⾏起来。
springboot项⽬部署
我们以前在部署web项⽬的时候基本⼭都是打成war包放到tomcat的webapp下⾯,启动tomcat。这种⽅式不仅仅耗时耗⼒,还需要要求部署项⽬的服务器事先就要有能够部署的环境。有时候还需要⼿动修改tomcat配置⽂件。
springboot就是极⼤的简化了项⽬的部署。
我们只需要将项⽬打成jar包,然后放在只需要有jdk的服务器上,java -jar ***就能启动项⽬了。
那么问题来了,以往我们对于web项⽬都是war包的形式进⾏部署的,为啥springboot项⽬却能想启动java应⽤程序⼀样部署呢?
上⾯也已经说过了,springboot是内置tomcat了的,所以项⽬启动的时候回⾃动启动tomcat,但是我们都知道启动jar⽂件都是需要有主类(main),
没错,它是就是我们的启动类,既然是主类,那肯定就会有启动弄类配置的吧,就是这个maven-shade-plugin,去看。
果然是有的,所以说现在问题都解决了,springboot通过maven插件配置了启动类,所以就可以java -jar的形式启动项⽬,启动类被启动之后就会扫描加载配置,启动内置的tomcat等,最后完成了项⽬的启动部署了。
以上就是我个⼈对springboot的⼀个简单的理解,有什么不对的对⽅⼀定要指正我啊
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论