SpringBoot 阶段总结

介绍

  1. 简单谈下你对微服务的理解。

    微服务就是把我们要做的项目根据业务进行独立部署,可以把同一项目中的不同语言编写的业务基于Restful风格开发接口进行网络间通讯。
    微服务的优点:

    1. 独立部署,灵活扩展。
    2. 资源隔离。
  2. 团队架构改变。

  3. SpringBoot是什么?

    SpringBoot是一套快速配置开发的脚手架,能快速开发单个微服务。其本质上就是一个maven工程。

    SpringBoot就是一个整合了很多优秀的框架的Spring封装,是一个启动Spring项目的启动工具。
    优点是不用再去写一大堆xml配置,而是采用习惯优于配置的配置方式,使用propertiesyml文件类型进行配置。

  4. 为什么要使用SpringBoot?

    • 配置简单
    • 独立运行
    • 自动装配
    • 无代码生成和 xml 配置
    • 提供应用监控
    • 易上手
    • 提升开发效率
    • 内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等

应用

  1. 怎么实现习惯优于配置?//SpringBoot是怎么启动的

    SpringBoot入口类上面有一个核心注解@SpringBootApplication ,这个注解里面又包含@Configuration(标注配置类),@ComponentScan(扫包并注册成Bean),@EnableAutoConfiguration(自动根据上下文来配置Bean)

  2. SpringBoot核心配置文件是什么?

    springboot配置文件有两种类型,它们主要的区别是书法风格不同。

    • bootstrap(.yml 或者 .properties):bootstrap 由父ApplicationContext 加载的,比 applicaton 优先加载,且boostrap里面的属性不能被覆盖;
    • application(.yml 或者 .properties):用于springboot项目的自动化配置。
application.ymlbootstrap.yml区别?

SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别

  1. SpringBoot中如何实现定时任务?

    定时任务也是一个常见的需求,SpringBoot中对于定时任务的支持主要还是来自Spring框架。

    在SpringBoot中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的@Scheduled注解,另一个则是使用第三方框架 Quartz

    使用 Spring 中的 @Scheduled 的方式主要通过 @Scheduled 注解来实现。

    使用 Quartz ,则按照 Quartz 的方式,定义 Job 和 Trigger 即可。

  2. 🌟 SpringBoot的常用注解有哪些?

    @SpringBootApplication  //Sprnig Boot项目的核心注解,目的是开启自动配置,也是下面三个的总和
    @EnableAutoConfiguration  //启用 SpringBoot 的自动配置机制
    @Configuration  //表示这是一个配置类,类似xml的配置文件
    @ComponentScan  //表示配置包扫描,里面的属性和xml的属性一一对应
    
    @Autowired  //自动根据类型注入
    @Qualifier(“名称”)  //指定自动注入的id名称
    
    @Resource(“名称”)  //和autowired类似,这个注解属于J2EE的
    @PostConstruct  //被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行
    @PreDestroy  //被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行
    
    @Component  //所有要让spring管理的bean都要标注这个注解,一般标注在pojo类
    //但是在web开发中,又衍生出了三个类,他们功能一样
    @Repository(“名称”) //dao层
    @Service(“名称”) //service层
    @Controller(“名称”) //web层
    
    @Scope  //声明 Spring Bean 的作用域
    //-------singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
    //-------prototype : 每次请求都会创建一个新的 bean 实例。
    //-------request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
    //-------session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
    @Configuration  //一般用来声明配置类,可以使用 @Component注解替代,不过使用Configuration注解声明配置类更加语义化。
    
    
    @PropertySource("classpath:user.properties")  //在pojo类中引入配置文件
    @ConfigurationProperties(prefix = "user")  //在顶部注解后可以自动引入
    @Value("${user.id}")//手动引入
    
    @ControllerAdvice  //全局异常处理,全局数据绑定,全局数据预处理
    @ExceptionHandler()  //全局异常处理,符合就近原则
    @ExceptionHandler(NumberFormatException.class)  //或者指定异常
    //------------web注解----------------
    @RestController  //@Controller和 @ResponseBody 的合集,REST风格的控制器
    @ResponseBody  //将java对象转为json格式的数据。
    
    @GetMapping("users") //等价于 @RequestMapping(value="/users",method=RequestMethod.GET)
    @PostMapping("users") //等价于@RequestMapping(value="/users",method=RequestMethod.POST)
    @PutMapping("/users/{userId}") //等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)
    @DeleteMapping("/users/{userId}")  //等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)
    @PatchMapping("/profile")  //一般实际项目中,我们都是 PUT 不够用了之后才用 PATCH 请求去更新数据。
    
    //----------前后端传值---------------
    @PathVariable  //用于获取路径参数
    @RequestParam  //用于获取查询参数。
    
    @RequestBody  //用于读取 Request 请求(可能是 POST,PUT,DELETE,GET 请求)的 body 部分并且Content-Type 为 application/json 格式的数据
    @Valid  //用于验证接收参数是否符合pojo定义的要求
    
    //参数校验 JSR 注解见另一篇文章RESTful
    
    @Entity  //声明一个类对应一个数据库实体。
    @Table  //设置表名
    @Id  //声明主键
    @GeneratedValue  //指定主键生成策略。
    @Column(name = "user_name", nullable = false, length=32)  //声明字段。
    @Column(columnDefinition = "tinyint(1) default 1") //设置字段类型并且加默认值
    @Transient  //指定不持久化特定字段
    
    
    @Transactional   //在要开启事务的方法上使用@Transactional注解即可!
    
  3. SpringBoot和SpringMVC有什么不同?

    1. springMvc属于一个企业WEB开发的MVC框架,涵盖面包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等配置相对比较繁琐复杂;

    2. springBoot框架相对于springMvc框架来说,更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对springmvc,大大简化了配置流程。

  4. springBoot和springCloud有什么不同?

    1. spring boot使用了默认大于配置的理念,集成了快速开发的spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;

    2. spring cloud大部分的功能插件都是基于springBoot去实现的,springCloud关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理; springCloud依赖于springBoot开发,而springBoot可以独立开发;

其他

SpringBoot开启热部署

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值