Spring boot 一课一得

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

引言:

SpringBoot的特点
为基于Spring的开发提供更快的入门体验
开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。 简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

对spring boot的理解

Spring Boot 作为当下 Java 开发领域极为热门的框架,每一次深入学习都能收获颇丰。在近期对 Spring Boot 的学习过程中,每一课都解锁了新的知识要点,让我对其强大功能与便捷开发方式有了更深刻的理解。

spring boot的优点与亮点

快速项目搭建:摆脱繁琐配置

以往开启一个 Java Web 项目,要在各种 XML 配置文件里打转,整合各类依赖,搭建环境就得耗费大量时间精力。Spring Boot 带来的第一课震撼便是它的快速启动能力。借助 Spring Initializr,简单勾选所需依赖,如 Web、数据库连接等,瞬间就能生成一个基础项目结构。无需手动配置复杂的 Spring 核心配置文件,它基于约定大于配置原则,默认设置已涵盖大部分常规场景。这不仅大幅缩短项目前期准备周期,更让开发者能将精力迅速聚焦到业务逻辑编写上,初次上手便深感高效开发的魅力,领悟到技术选型对项目启动速度的关键影响。

自动配置机制:隐藏复杂细节

深入学习后,Spring Boot 的自动配置堪称核心亮点。它像是一位幕后智能管家,默默根据项目依赖 “猜” 出所需配置并自动完成。例如引入 spring-boot-starter-web 依赖后,内嵌的 Tomcat 服务器自动配置妥当,端口监听、Servlet 注册等细节无需操心;连数据库连接池也能依据 spring-boot-starter-jdbc 及配置文件中的数据源信息,智能适配常见数据库(MySQL、PostgreSQL 等),设置好连接参数、加载驱动。这让我意识到,掌握自动配置原理可避免重复造轮子,在排查问题时也能快速定位因自定义配置打破默认规则引发的异常,精准把握框架底层运行逻辑,为开发稳健应用筑牢根基。

spring boot 的基础用法

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
 
@RestController
@EnableAutoConfiguration
public class HelloWorldApplication {
 
    @RequestMapping("/")
    String home() {
        return "Hello, Spring Boot!";
    }
 
    public static void main(String[] args) throws Exception {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
 
}

这段代码实现了一个简单的REST API,当访问根路径/时,它会返回"Hello, Spring Boot!"的消息。@RestController注解表示这是一个REST控制器,用于返回HTTP响应。@EnableAutoConfiguration让Spring Boot自动根据类路径设置、其他bean以及各种属性设置配置。main方法使用SpringApplication.run方法来启动Spring Boot应用程序。这是开始使用Spring Boot的一个很好的基础。

如何创建一个项目

1. 通过 Spring Initializr 创建项目骨架

  • 在 IntelliJ IDEA 中操作
  • 打开 IntelliJ IDEA,点击 File -> New -> Project
  • 在弹出的窗口左侧选择 Spring Initializr
  • 选择 SDK(确保已配置好 Java 开发环境,选择合适的 Java 版本,比如 Java 11 或者更高版本)。
  • 在 Spring Initializr 相关配置中,可以指定项目的 Group(一般是公司域名反写等,例如 com.example)、Artifact(项目名,比如 my-spring-boot-project),并选择项目的打包方式(Jar 或 War,通常 Web 应用选 Jar 就行),还有 Java 版本等信息。
  • 在 Dependencies(依赖)中,添加你需要的 Spring Boot 相关依赖,比如开发 Web 应用可以添加 Spring Web 依赖(用于构建 RESTful API 等 Web 服务),如果要操作数据库可以添加相应的数据库驱动依赖(比如 MySQL Driver 等)以及 Spring Data JPA 等依赖(方便操作数据库)。点击 Next 并根据提示完成项目的创建。

2. 生成的项目基本结构及关键代码说明

项目结构说明:

 主启动类代码示例

package com.example.myspringbootproject;

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

@SpringBootApplication
public class MySpringBootProjectApplication {

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

上述代码中,@SpringBootApplication 注解是一个组合注解,它相当于同时使用了 @Configuration(表明这是一个配置类,可以在其中定义 Bean 等配置信息)、@EnableAutoConfiguration(开启 Spring Boot 的自动配置功能,根据添加的依赖自动配置很多默认的组件,比如 Web 应用的 Tomcat 等服务器相关配置)、@ComponentScan(用于扫描指定包及其子包下的 Spring 组件,比如 @Controller@Service@Repository 等注解标注的类)。main 方法则是项目的入口点,通过 SpringApplication.run 方法启动 Spring Boot 应用程序。

简单的 Web 接口示例(创建一个 HelloController 类演示 Web 功能,在 com.example.myspringbootproject 包下创建新的类)

package com.example.myspringbootproject;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}

这里 @RestController 注解是 @Controller 和 @ResponseBody 的组合注解,表明这个类是一个处理 HTTP 请求的控制器类,并且方法返回的结果会直接作为响应体返回(比如这里返回一个简单的字符串)。@GetMapping 注解指定了这个方法处理的是 GET 类型的 HTTP 请求,路径是 /hello,当访问应用的 /hello 路径时,就会返回 Hello, Spring Boot! 这个字符串响应。

3. 运行项目

在 IntelliJ IDEA 中,可以直接在主启动类(MySpringBootProjectApplication)上右键,选择 Run 'MySpringBootProjectApplication' 来启动项目,启动成功后,可以在控制台看到相关启动日志,默认应用会运行在本地的一个端口上(比如 8080,可以通过配置文件修改端口),然后通过浏览器或者其他 HTTP 客户端工具访问 http://localhost:8080/hello 就能看到 Hello, Spring Boot! 这个响应了。如果是通过命令行使用 Maven 构建并运行项目,可以进入项目的根目录(包含 pom.xml 文件的目录),执行以下命令:

mvn clean package (先编译打包项目)
java -jar target/my-spring-boot-project-0.0.1-SNAPSHOT.jar (运行打包后的项目,这里的文件名根据实际生成的来,版本号等可能不同)

 这就是一个简单的 Spring Boot 项目创建及基本代码示例,你可以根据具体需求进一步扩展功能,添加更多的业务逻辑、配置数据库连接等操作。

spring boot连接数据库

一、连接 MySQL 数据库

1. 添加依赖

pom.xml(如果是 Maven 项目)中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

spring-boot-starter-data-jpa用于方便地进行数据持久化操作,借助 Spring Data JPA 框架。mysql-connector-java则是 MySQL 数据库的 Java 驱动,用于建立与 MySQL 数据库的连接。

 2. 配置数据库连接信息(application.properties 或 application.yml)

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 这里要将your_database_name替换为实际的数据库名,your_usernameyour_password替换为对应的登录用户名和密码。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

Respository接口示例(用于数据访问)

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // 可以根据需求自定义查询方法,Spring Data JPA会按规则生成SQL
    // 例如:User findByUsername(String username);
}

基本上就可以实现spring boot与数据库的连接了。

总结

Spring Boot是Spring框架的一个子项目,用于简化新Spring应用的初始搭建以及开发过程。该项目目的是为了让你尽可能快地启动并运行你的应用,

熟练地运用spring boot对日后的学习有所帮助。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值