从0到1重新认识Java之框架篇(二)

102 阅读4分钟

这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

在日常的开发中,业务的开发总不能让我们从头开始,从0到1的原生开发,借助框架,是目前程序员开发的主流,毕竟轮子不需要重复造。所以,在面试中,首当其冲的便是Java基础 → 框架 延伸而来。

Spring MVC 框架有什么用?

Spring MVC 是基于MCV的原理基础上 生成的;日常被问到的频率也高,从启动原理到设计模式。该框架提供 模型-视图-控制器 架构和随时可用的组件,用于开发灵活且松散耦合的 Web 应用程序。MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。

Spring Boot 有哪些优点?

关于Springboot,相信Java的开发人员都不会默认,目前最主流的开发框架;为什么这么多人使用呢 Spring Boot 的优点有:

  • 减少开发,测试时间和努力,Springboot本身是Spring的加强版,优化了配置,并且本身集成了junit等测试包 。
  • 使用 JavaConfig 有助于避免使用 XML;这不就是Springboot的主流之处吗,Spirng的bean管理配置繁琐,借助XML加强了开发人员的开发学习成本。
  • 避免大量的 Maven 导入和各种版本冲突,Springboot 直接在pom文件中,自动导入依赖。
  • 提供意见发展方法,在开源项目中,不断吸取意见。
  • 通过提供默认值快速开始开发,Springboot有注解,设置@Value提供默认值。
  • 没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish或其他任何东西,Springboot内部就嵌套了一个tomcat,不需要额外的一个项目去手动放置在Tomcat中。
  • 需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到 bean 方法中,以使 Spring 自动装入需要的依赖关系中,除此之外,有yml文件,可以提供自定义的配置。
  • 基于环境的配置 使用这些属性,您可以将您正在使用的环境传递到应用程序:-Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring 将在(application{environment} .properties)中加载后续的应用程序属性文件。

什么是 CSRF 攻击?

CSRF 代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web 应用程序上执行不需要的操作。CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应,这种攻击可以通过防止请求接口来实现,例如说用CAS,通过每次请求的版本号+1去防止这种攻击,可以归宿到多线程的思路上。

什么是 Apache Kafka?

Apache Kafka 是一个分布式发布 - 订阅消息系统。它是一个可扩展的,容错的发布 - 订阅消息系统,它使我们能够构建分布式应用程序。这是一个 Apache 顶级项目。Kafka 适合离线和在线消息消费。

SpringBoot的自动配置原理是什么

  • 主要是Spring Boot的启动类上的核心注解SpringBootApplication注解主配置类,有了这个主配置类启动时就会为SpringBoot开启一个@EnableAutoConfiguration注解自动配置功能。

  • 有了这个EnableAutoConfiguration的话就会:

    • 从配置文件META_INF/Spring.factories加载可能用到的自动配置类
    • 去重,并将exclude和excludeName属性携带的类排除
    • 过滤,将满足条件(@Conditional)的自动配置类返回

什么是 YAML?

YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。除此以外Yml还可以分级,XXX-dev等级别分明,一般与之对应的是 properties,不过由于可读性,一般会选择yml

总结

对于Springboot的框架,算是加深了一点,但是路途遥远,知识盲区还很多,从基础到Spirng的原理到底层源码,种种技术都要长路漫漫