【Springboot初体验(一)】

一、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项目中分层解析

各个层的定义与关系

  1. entity层(实体类)其中将数据库中的数据表,分析以后得到的各个实体,并且定义为不同的实体类

  2. mapper层(Dao层)访问数据库,向数据库发送sql语句,完成增删改查任务

  3. service层 service层接口继承Iservice,在创建要实现的类。封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。其中如果使用mybatis-plus代码生成器,会帮助自动创建服务类(接口)、服务实现类(接口实现类)

  4. controller层(控制层)控制业务逻辑service,控制请求和响应,负责前后端交互。功能在controller类里面写,调用前面的service层,service层调用mapper去跟数据库发送sql语句进行交互。

    总的来说,controller是领导,派命令(调用)给service(小组长),service再让mapper(调用mapper层)根据entity层(手头上有的实体“名单”)去数据库内进行查询

总结

到这里我就继续做我的SpringBoot项目了,算是对其有了初步的了解,在做项目时也会有更加深刻的理解,对整个项目把握也会更好。All in all,springboot是一个上手非常快,而且功能强大的开发框架,对于新手即使不了解其原理或者只是有初步的了解,在做项目的时候也能十分清晰的构建。
哦,对了,我再构建上述这些层级时,使用了springboot代码生成器,这个我打算再后续的笔记中展示。也是非常便捷的,大大减小了上手的难度。
以上是我对初步涉猎springboot项目的,作为一个新手的理解,有错误之处,请大家斧正,欢迎交流谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值