您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页Spring全家桶的深入学习(一):Spring起步

Spring全家桶的深入学习(一):Spring起步

来源:意榕旅游网
Spring全家桶的深⼊学习(⼀):Spring起步

⽬录

背景

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规范

4.0.0

org.springframework.boot spring-boot-starter-parent 2.3.1.RELEASE

com.example demo

0.0.1-SNAPSHOT demo

Demo project for Spring Boot

1.8

org.springframework.boot spring-boot-starter-web

org.springframework.boot spring-boot-starter-test test

org.junit.vintage

junit-vintage-engine

org.springframework.boot spring-boot-maven-plugin

可参见本⼈博客及这两篇⽂章。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视图层

Title

运⾏测试

尝试使⽤Spring Boot DevTools

•代码变更后应⽤会⾃动重启;

•当⾯向浏览器的资源(如模板、JavaScript、样式表)等发⽣变化时,会⾃动刷新浏览器pom.xml

org.springframework.boot spring-boot-devtools true runtime ...

org.springframework.boot spring-boot-maven-plugin

true

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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务