⽬录
背景
Spring早已经成为企业级开发的业界标准,尤其是Spring Boot 2.0、Spring 5发布后,Spring的⽣态系统引领了技术架构发展的潮流,对于Java开发⼈员,深⼊掌握Spring全家桶的各种框架应⽤及必要的底层原理知识,是⼀件⾮常重要的事情。学习路线图
Spring的基础知识
什么是Spring
Spring的核⼼是提供了⼀个容器(container),通常称为Spring应⽤上下⽂(Spring application context),它们会创建和管理应⽤组件。这些组件也可以称为bean,会在Spring应⽤上下⽂中装配在⼀起,从⽽形成⼀个完整的应⽤程序。
将bean装配在⼀起的⾏为是通过⼀种基于依赖注⼊(dependency injection,DI)的模式实现的。此时,组件不会再去创建它所依赖的组件并管理它们的⽣命周期,使⽤依赖注⼊的应⽤依赖于单独的实体(容器)来创建和维护所有的组件,并将其注⼊到需要它们的bean中。通常,这是通过构造器参数和属性访问⽅法来实现的。
Spring框架核⼼模块
SpringBoot
在历史上,⼀般通过两种配置⽅式为Spring应⽤上下⽂提供Bean1. 使⽤⼀个或多个XML⽂件描述bean
2. 使⽤@Configuration注解会告知Spring这是⼀个配置类
随着Spring Boot 2.x的引⼊,Spring⾃动配置的能⼒已经⼤⼤加强,Spring Boot能够基于类路径中的条⽬、环境变量和其他因素合理猜测需要配置的组件并将它们装配在⼀起。Java程序员尽可能多地使⽤Spring Boot,只有在必要的时候才使⽤显式配置。
第⼀个Spring应⽤DEMO
1. 在IntelliJ IDEA中创建新项⽬
2. 通过地址为https://start.spring.io/初始化项⽬;
3. 指定项⽬通⽤信息:
4. 选择项⽬Starter:
5. ⽣成的项⽬结构:
6. maven规范
可参见本⼈博客及这两篇⽂章。7. ⼊⼝类
/**
* SpringBoot应⽤*/
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) { // 运⾏应⽤
SpringApplication.run(DemoApplication.class, args); }}
@SpringBootApplication是⼀个组合注解,它组合了3个其他的注解。
@SpringBootConfiguration:将该类声明为配置类。尽管这个类⽬前还没有太多的配置,但是后续我们可以按需添加基于Java的Spring框架配置。这个注解实际上是@Configuration注解的特殊形式。
@EnableAutoConfiguration:启⽤Spring Boot的⾃动配置。我们随后会介绍⾃动配置的更多功能。就现在来说,我们只需要知道这个注解会告诉SpringBoot⾃动配置它认为我们会⽤到的组件。
@ComponentScan:启⽤组件扫描。这样我们能够通过@Component@Controller、@Service这样的注解声明其他类,Spring会⾃动发现它们并将它们注册为Spring应⽤上下⽂中的组件。
8. 测试类
// SpringBoot测试@SpringBootTest
class DemoApplicationTests { // 测试⽅法 @Test
void contextLoads() { }}
程序启动
编写⾃⼰的第⼀个SpringMVC例⼦
第⼀个Controller
index()是⼀个简单的控制器⽅法。它带有@GetMapping注解,表明如果针对“/”发送HTTP GET请求,那么这个⽅法将会处理请求。该⽅法所做的只是返回String类型的index值,该控制器⽅法中还通过Spring⾃动注⼊IndexService服务组件,及调⽤服务组件⽅法。
/**
* 第⼀个SpringMVC程序--Controller层 *
* @author zhuhuix * @date 2020-07-02 */
@Controller
public class IndexController { // Spring注⼊服务组件 @Autowired
private IndexService indexService; @GetMapping(\"/\")
public String index(Model model) {
String index = indexService.getIndex(); model.addAttribute(\"index\ // 返回视图 即index.html return \"index\"; }}
第⼀个Service
getIndex()是⼀个简单的服务⽅法。该⽅法所做的只是返回String类型的index值,该服务组件供控制层调⽤。
/**
* 第⼀个SpringMVC程序--Service层 * * @author zhuhuix * @date 2020-07-02 */
@Service
public class IndexService { public String getIndex() { return \"hello world\"; }}
第⼀个View-- 使⽤Thymeleaf模板引擎
### application.properties###ThymeLeaf配置spring:
thymeleaf:
#模板的模式,⽀持 HTML, XML TEXT JAVASCRIPT mode: HTML5 #编码 可不⽤配置 encoding: UTF-8
#内容类别,可不⽤配置 content-type: text/html
#开发配置为false,避免修改模板还要重启服务器 cache: false
#配置模板路径,默认是templates,可以不⽤配置 prefix: classpath:/templates
-- 定义index.html视图层
运⾏测试
尝试使⽤Spring Boot DevTools
•代码变更后应⽤会⾃动重启;
•当⾯向浏览器的资源(如模板、JavaScript、样式表)等发⽣变化时,会⾃动刷新浏览器pom.xml
idea设置
-- 需勾选Build project automaticallty
-- ctrl+alt+shift+/ :Registry 中第⼀项必须打勾
回顾总结
Spring核⼼框架:Spring核⼼框架是Spring领域中⼀切的基础。它提供了核⼼容器和依赖注⼊框架。
Spring Boot:Spring Boot构建在Spring之上,通过简化依赖管理、⾃动配置和运⾏时洞察,使Spring更加易⽤;
Spring MVC:我们通过SpringBoot初始化⽣成的框架上加⼊Controller,Service,View的分层,编写了第⼀个Spring MVC程序,并成功运⾏。使⽤Idea开发环境,安装Spring Boot DevTools并进⾏配置,提⾼了开发效率。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务