1. 什么是spring框架?有哪些模块?哪些特性?
spring框架是为Java应用程序开发提供了综合、广泛的基础性支持的Java平台。它是帮助程序员解决开发中基础性问题,使得程序员专注于应用程序的开发。
Spring 是一种轻量级开发框架,它有很多模块比如:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。
Spring框架的七大模块:
-
Spring Core :框架的最基础部分,提供 IoC 容器,对 bean 进行管理。
-
Spring Context :基于 bean,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化、校验和调度等功能。
-
Spring DAO : 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码,还提供了声明性事务管理方法。
-
Spring ORM : 提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate、MyBatis 等。
-
Spring AOP : 提供了符合AOP Alliance规范的面向方面的编程实现。
-
Spring Web : 提供了基础的 Web 开发的上下文信息,可与其他 web 进行集成。
-
Spring Web MVC : 提供了 Web 应用的 Model-View-Controller 全功能实现。
SpringBoot的特征:
-
创建独立的Spring应用程序
-
直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
-
提供固化的“starter”依赖项,以简化构建配置
-
尽可能自动配置Spring和3rd Party库
-
提供可用于生产的功能,例如指标,运行状况检查和外部化配置
-
完全没有代码生成,也不需要XML配置
3. 如何快速构建一个SpringBoot项目?
-
通过Web界面使用。http://start.spring.io
-
通过Spring Tool Suite使用。
-
通过IntelliJ IDEA使用。
-
使用Spring Boot CLI使用。
4. SpringBoot启动类注解?它是由哪些注解组成?
@SpringBootApplication
-
@SpringBootConfifiguration:组合了 @Confifiguration 注解,实现配置文件的功能。
-
@EnableAutoConfifiguration:打开自动配置的功能,也可以关闭某个自动配置的选项。
-
@SpringBootApplication(exclude = { DataSourceAutoConfifiguration.class })
-
@ComponentScan:Spring组件扫描
5. 什么是yaml?
YAML是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl。更具有结构性。
6. SpringBoot支持配置文件的格式?
1.properties
java.xiaokaxiu.name = xiaoka
2.yml
java: xiaokaxiu: name: xiaoka
7. SpringBoot启动方式?
-
执行带有main方法类:使用IDEA启动
-
命令行 java -jar 的方式
-
mvn/gradle: mvn spring-boot:run
8. SpringBoot需要独立的容器运行?
不需要,内置了 Tomcat/Jetty。
9. SpringBoot配置途径?
-
命令行参数
-
java:comp/env里的JNDI属性
-
JVM系统属性
-
操作系统环境变量
-
随机生成的带random.*前缀的属性(在设置其他属性时,可以引用它们,比如${random.
long})
-
应用程序以外的application.properties或者appliaction.yml文件
-
打包在应用程序内的application.properties或者appliaction.yml文件
-
通过@PropertySource标注的属性源
-
默认属性
tips:这个列表按照优先级排序,也就是说,任何在高优先级属性源里设置的属性都会覆盖低优先级的相同属性。