一、Springboot简介
springboot是一个JavaScript的开发框架,但是与众多开发框架不同的是,他集成了几乎所有框架。将其他框架作为第三方库,用户可以通过加入依赖,导入到自己的框架中,操作起来十分简洁方便。
如果把springboot主体框架比作是一个核心发动机,那么其他第三方框架(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等)就是一个个配件,组合成一辆奔驰的小汽车(哈哈哈~纯属个人理解)此外,更重要的是这些配件都是即插即用,如果是Maven项目,只需要在pom.xml文件中导入依赖即可使用。
二、Springboot的运行原理
1)pom.xml文件
pom.xml是springboot项目的重要核心文件之一,这里定义了以下重要依赖:
- spring-boot-dependencies: 核心依赖在父工程中;
- springboot-boot-starter-xxx:就是spring-boot的场景启动器
- spring-boot-starter-web:帮我们导入了web模块正常运行所依赖的组件;
除此之外,用户还需要使用各种第三方的框架配置,都需要在这个文件中设置dependence。SpringBoot将所有的功能场景都抽取出来,做成一个个的starter (启动器),只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来 , 我们要用什么功能就导入什么样的场景启动器即可 ;我们未来也可以自己自定义 starter;
2)主启动类配置
//@SpringBootApplication 来标注一个主程序类
//说明这是一个Spring Boot应用
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
//以为是启动了一个方法,没想到启动了一个服务
SpringApplication.run(SpringbootApplication.class, args);
}
}
@Configuration,启用基于Java的配置。
@ComponentScan 根据pom.xml文件中的依赖,来启用组件扫描。
@EnableAutoConfiguration启用Spring Boot的自动配置功能。
但现在你只需用 @SpringBootApplication 来注解你的 Application 类,就可以做到这一切。因为你可以试着crtl+点击(@SpringBootApplication),进入后会发现以上三个@xxx出现在文件中
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
链接: 由@SpringBootApplication出发引出深入的理解——点击此链接
从 @SpringBootApplication 源码可以看出 @SpringBootApplication = @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration 。由此得到一个@SpringBootApplication就可以代替以上三个@xxx。
@SpringBootConfiguration:Springboot配置
这个注解将一个类标记为基于Java配置的配置类。如果你喜欢基于Java的配置而不是基于XML的配置,这一点就特别重要。
@ComponentScan:组件扫描
该注解使组件扫描成为可能,这样你创建的Web控制器类和其他组件将被自动发现,并在Spring应用上下文中注册为Bean。你编写的所有@Controller类将被该注解发现。
@EnableAutoConfiguration:自动配置
这个注解可以启用Spring Boot惊人的自动配置功能,它可以为你自动配置很多东西。
三、Springboot项目中分层解析
各个层的定义与关系
-
entity层(实体类)其中将数据库中的数据表,分析以后得到的各个实体,并且定义为不同的实体类
-
mapper层(Dao层)访问数据库,向数据库发送sql语句,完成增删改查任务
-
service层 service层接口继承Iservice,在创建要实现的类。封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。其中如果使用mybatis-plus代码生成器,会帮助自动创建服务类(接口)、服务实现类(接口实现类)
-
controller层(控制层)控制业务逻辑service,控制请求和响应,负责前后端交互。功能在controller类里面写,调用前面的service层,service层调用mapper去跟数据库发送sql语句进行交互。
总的来说,controller是领导,派命令(调用)给service(小组长),service再让mapper(调用mapper层)根据entity层(手头上有的实体“名单”)去数据库内进行查询
总结
到这里我就继续做我的SpringBoot项目了,算是对其有了初步的了解,在做项目时也会有更加深刻的理解,对整个项目把握也会更好。All in all,springboot是一个上手非常快,而且功能强大的开发框架,对于新手即使不了解其原理或者只是有初步的了解,在做项目的时候也能十分清晰的构建。
哦,对了,我再构建上述这些层级时,使用了springboot代码生成器,这个我打算再后续的笔记中展示。也是非常便捷的,大大减小了上手的难度。
以上是我对初步涉猎springboot项目的,作为一个新手的理解,有错误之处,请大家斧正,欢迎交流谢谢!