- Spring简介
- Spring Boot简介
- 开发一个Spring Boot应用
- Spring简介
Spring框架:Java EE开发中最重要的框架之一,完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,大大提高了开发效率
Spring是模块化的,可选择自己需要的Spring模块,其中最重要的模块包括
Core Container:核心容器
AOP:面向切面编程
Web:Web集成功能
Data Access:数据访问功能
Core Container主要由org.springframework.core、org.springframework.beans、org.springframework.context、org.springframework.expression四个包及其子包组成,主要提供Spring IoC容器支持
IoC:Inversion of Control,控制反转,借助“第三方”实现具有依赖关系的对象之间的解耦
(https://blog.csdn.net/ivan820819/article/details/79744797)
Spring最大的特点是通过配置简化开发
在Spring 2.x的时代,提供了声明Bean的注解(如@Component、@Service等),大大减少了XML的配置量
Bean:由Spring IoC容器实例化、组装和管理的对象
(https://www.awaimai.com/2596.html)
- Spring Boot简介
Spring Boot使用“约定大于配置”的理念,提供了针对各种场景的spring-boot-starter自动配置依赖模块,这些模块“开箱即用”,目的就是为了对Java Web的开发进行“简化”和“加速”
Spring Boot可以以jar包的形式独立运行,使用java -jar命令或者在项目的主程序中执行main函数就可以成功运行项目
内嵌Servlet容器,可以选择内嵌Tomcat、Jetty等Web容器,无需以war包形式部署项目
提供starter简化Maven配置,基本上可以做到自动化配置,高度封装,开箱即用
Spring Boot的配置主要分为:命令行参数、系统环境变量、位于文件系统中的配置文件、位于classpath中的配置文件、固化到代码中的配置(优先级从高到低)
实际项目中最常用的配置是配置文件,Spring Boot应用默认的配置文件名叫作application.properties
- 日志依赖模块spring-boot-starter-logging
可以通过如下配置在Maven中添加spring-boot-starter-logging模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
若要对默认日志设置做调整,使用自己定制的logback.xml日志文件,logback.xml建议放在src/main/resources目录下,然后在application.properties中指定:
logging.config = logback.xml
- Web开发依赖模块spring-boot-starter-web
Spring框架的使用者几乎都会使用Spring MVC来开发Web项目
MVC:Model View Control,模型-视图-控制器
可以通过如下配置在Maven中添加spring-boot-starter-web模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这样,就得到了一个可以直接执行Web项目,运行当前项目的main方法就可以启动一个使用了嵌入式Tomcat服务器的Web应用
可以在当前项目下新建一个Spring MVC的Controller控制器,来返回值,否则会报错“Whitelabel Error Page”:
@RestController
public class IndexController {
//映射“/”请求
@RequestMapping("/")
public String index() {
return "Hello Spring Boot!";
}
}
访问“http://127.0.0.1:8080”,将显示Controller返回的信息
Spring Boot项目的静态文件和页面统一放在src/main/resources目录对应的子目录下:
src/main/resources/static目录用于存放各类静态资源文件,比如css、js、image,
src/main/resources/templates目录用于存放页面模板文件,比如html、jsp
spring-boot-starter-web依赖模块默认使用嵌入式Tomcat作为Web容器对外提供服务,默认使用8080端口对外监听和提供服务,可在Maven中引入依赖替代Tomcat,如果不想使用默认的8080端口,可以通过更改application.properties配置文件中的server.port使用自己指定的端口:
server.port = 8088
- 开发一个Spring Boot应用
使用Eclipse/IDEA作为Java IDE开发工具,使用Maven作为项目构建工具
repository用于充当本地资源库,Maven构建项目所使用的插件、第三方依赖库都集中存放在本地资源库中
选择项目类型:通常选择建立maven-archetype-quickstart(非Web项目)项目模型或者maven-archetype-webapp(Web项目)项目模型,这是两种比较常用的模型
target文件夹是源码编译后生成的class文件存放的地方
pom.xml文件是Maven的基础配置文件,也是项目中最重要的文件,被称为项目对象模型(Project Object Model)描述文件
构建基于Spring Boot的应用首先必须要将<parent.../>元素设置为Spring Boot的spring-boot-starter-parent,spring-boot-starter-parent是Spring Boot的核心启动器,包含了自动配置、日志和YAML等大量默认的配置,大大简化了开发工作
@RestController相当于SpringMVC中的@Controller + @ResponseBody
@SpringBootApplication指定这是一个Spring Boot的应用程序
SpringApplication.run(App.class,args); 用于从main方法启动Spring应用的类
从控制台启动信息可以看到Tomcat启动过程、SpringMVC加载过程,包括dispatcherServlet等