SpringBoot运行原理
配置 spring.factories ,通过该配置,才能让springboot来自动加载我们的Configuration类。具体原理我们稍后深入了解。具体的,是在模块的 resources/META-INF 目录下,新建 spring.factories 文件。
springboot帮我们做的两件事,一个是通过starter引入我们需要的框架,starter负责引入自己的依赖;另一个是通过autoconfigure生效一些默认的配置,简化我们的使用,这一步是通过spring.factories中定义的配置类实现的。
首先打开一个基本的springboot项目,点进去@SpringBootApplication注解。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring boot 整合了web 和batch ,但是他们肯定不是同一条路, 在spring boot 中,会推断当前的运行环境。
同时,我试了下,直接运行application类的话,是找不到主类的:因为在文件目录中,JarlearnApplication实际上是在META-INF/maven/... 中的,所以会找不到。
spring框架有哪7个模块组成,分别列出各模块的名字和功能
每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。
Spring MVC框架支持:一个全功能的构建 Web 应用程序的 MVC 实现,MVC 容纳了大量视图技术,其中包括 JSP、Velocity等。
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。
SpringBoot系列:springdevtools模块
1、将 spring.devtools.restart.trigger-file 属性设为触发文件路径。spring-boot-devtools 模块包含一个嵌入式 LiveReload 服务器,可用于在资源更改时触发浏览器刷新。浏览器需要安装 LiveReload 插件 。
2、Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。
3、整合阶段 由于springboot没有对 beatlsql的快速启动装配,所以需要我自己导入相关的bean,包括数据源,包扫描,事物管理器等。
4、如果在Eclipse中使用Spring Boot DevTools时,你不小心关闭了提示框,那么你可以通过以下方法重新启用这个提示框:在Eclipse的菜单栏中,点击“窗口”(Window)。在下拉菜单中,选择“首选项”(Preferences)。
5、你能够使用 Spring Boot 创建 Java 应用并通过 java -jar 来运行或者创建传统的通过 war 来部署的应用。Spring Boot 也提供了一个命令行工具来运行 spring 脚本。
SpringBoot多模块项目(Multi-Modules)
@SpringBootApplication修饰的主应用类在哪个包下,系统会自动从这一级往下扫描并注册到spring。比如如果当前主应用类在com.example下面,则com.example 和com.example.dao里的相关类都可以被扫描到。
项目整体为SpringBoot项目,启动类在一个模块中,启动后发现另外一个模块的controller未加载,调用其中的接口报404。这个是跨模块的,启动类在模块A的com.kunlin下,它可以扫描模块B的com.kunlin目录下的内容。
我们项目一般有dao层,service层,controller层,复杂一点的项目有前台系统controller和后台系统controller,如果把它们全看成是模块的话,模块之间的关系如图显示。
聚合(多模块)则是为了方便一组项目进行统一的操作而作为一个大的整体,所以要真正根据这两者不同的作用来使用,不必为了聚合而继承同一个父POM,也不比为了继承父POM而设计成多模块。
一般都是使用搭建好的框架进行业务逻辑开发,一直不清楚整个项目是如何从零到一构建出来的。所以开一个帖子,记录一下一个springboot项目是如何构建的。使用的工具为idea 选择maven或者spring initializr都可以。