SpringBoot2.x从入门到项目实战【第2章】

本教程详细介绍了如何使用SpringBoot2.x搭建并运行一个简单的Web应用,包括创建Maven工程、添加起步依赖、编写引导类和Controller,以及如何通过浏览器访问应用。

二、SpringBoot2.x从入门到项目实战【第2章】

2.1 代码实现

2.1.1 创建Maven工程

使用idea工具创建一个maven工程,该工程为普通的java工程即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.2 添加SpringBoot的起步依赖

SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2.1.3 编写SpringBoot引导类

要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问

package com.itheima;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class);
    }

}

2.1.4 编写Controller

在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController

package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class QuickStartController {
    
    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "springboot 访问成功!";
    }
    
}

2.1.5 测试

执行SpringBoot起步类的主方法,控制台打印日志如下:

.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)

2018-05-08 14:29:59.714  INFO 5672 --- [           main] com.itheima.MySpringBootApplication      : Starting MySpringBootApplication on DESKTOP-RRUNFUH with PID 5672 (C:\Users\muzimoo\IdeaProjects\IdeaTest\springboot_quick\target\classes started by muzimoo in C:\Users\muzimoo\IdeaProjects\IdeaTest)
... ... ...
o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-08 14:30:03.126  INFO 5672 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-05-08 14:30:03.196  INFO 5672 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-05-08 14:30:03.206  INFO 5672 --- [           main] com.itheima.MySpringBootApplication      : Started MySpringBootApplication in 4.252 seconds (JVM running for 5.583)

通过日志发现,Tomcat started on port(s): 8080 (http) with context path ‘’
tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空
打开浏览器访问url地址为:http://localhost:8080/quick
在这里插入图片描述
<声明:本文摘选自it黑马视频教程教学资料,侵权联系本人删除.>

<think>嗯,用户问的是作为一个初学者,学习Spring Boot 2.x系列需要掌握哪些知识点,从入门到高阶。首先,我需要先理清楚Spring Boot的学习路线,分阶段来回答。首先,入门阶段肯定要了解Spring Boot的基础概念,比如它的优势,自动配置,起步依赖这些。然后搭建第一个项目,用Spring Initializr或者IDE创建项目,写个简单的Hello World。接着是核心注解,比如@SpringBootApplication、@RestController、@Autowired这些,用户需要明白它们的作用。 然后是常用功能的集成,比如Web开发,使用SpringMVC处理请求,RESTful API设计。数据访问部分,整合JPA和MyBatis,配置数据源。模板引擎比如Thymeleaf也是常用的,需要介绍。还有配置文件的使用,比如application.properties和YAML,多环境配置。 接下来是进阶部分,比如自动配置原理,Spring Boot如何通过条件注解实现自动配置,可能需要让用户了解@Conditional相关的注解。然后是自定义Starter,这是高阶内容,需要知道如何创建自己的starter。AOP和事务管理也是企业开发中常用的,需要讲解如何集成。在高级特性部分,Actuator监控端点、安全控制Spring Security、缓存机制如Redis和Caffeine,消息队列比如RabbitMQ和Kafka。还有响应式编程,WebFlux的使用,可能涉及Reactor库。性能优化方面,比如启动优化、JVM参数调整、连接池配置等。微服务相关的内容,比如Spring Cloud的整合,服务发现、配置中心、熔断器等。Docker容器化部署和Kubernetes集群管理也是现在流行的,需要涵盖。还有测试部分,单元测试、MockMvc、集成测试。 最后是项目实战和源码解析,通过实际项目巩固知识,学习最佳实践,并深入理解Spring Boot的源码和设计思想。 在回答时,需要分阶段列出知识点,每个部分简要说明内容,并给出示例代码,比如创建RESTfulAPI的Controller,配置数据源等。然后根据这些内容提出相关问题,帮助用户进一步学习,比如自动配置原理、Starter创建、WebFlux与传统MVC的区别,Spring Cloud整合的组件等。</think> Boot 2.x 学习路径可分为基础、进阶、高阶三个阶段,以下是详细知识点和推荐学习顺序: 一、基础阶段(入门) 1. 核心概念 - 约定优于配置原则 - 自动配置原理(spring-boot-autoconfigure) - 起步依赖(Starter POMs) - 内嵌容器(Tomcat/Jetty/Undertow) 2. 项目创建与运行 ```java @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 3. 基础注解 - @SpringBootApplication(组合注解) - @RestController vs @Controller - @RequestMapping 及其派生注解 - @Value 与 @ConfigurationProperties 4. 数据访问基础 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver ``` 二、进阶阶段(核心功能) 1. 自动配置原理深入 - spring.factories 文件机制 - @Conditional 条件注解族 - 自定义自动配置类 2. 数据访问进阶 ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { @Query("SELECT u FROM User u WHERE u.email = ?1") User findByEmail(String email); } ``` 3. Web开发进阶 - 统一异常处理(@ControllerAdvice) - 参数验证(@Valid + Hibernate Validator) - 文件上传与下载 - 跨域处理(@CrossOrigin) 4. 安全控制 ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .anyRequest().authenticated() .and().formLogin(); } } ``` 三、高阶阶段(生产级应用) 1. 性能优化 - 启动优化(懒加载配置) - JVM 参数调优 - 连接池优化(HikariCP 配置) ```properties spring.datasource.hikari.maximum-pool-size=20 spring.datasource.hikari.connection-timeout=30000 ``` 2. 响应式编程 ```java @RestController public class ReactiveController { @GetMapping("/flux") public Flux<String> getFlux() { return Flux.just("A", "B", "C") .delayElements(Duration.ofSeconds(1)); } } ``` 3. 微服务集成 - Spring Cloud Gateway - OpenFeign 声明式调用 - Spring Cloud Config - Resilience4j 熔断 4. 监控与部署 ```xml <!-- Actuator 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值