springboot

1.什么是springboot

Spring Boot 是一个开源的 Java 框架,基于 Spring 框架构建,旨在简化 Spring 应用程序的开发过程。它通过约定优于配置的原则、自动配置以及开箱即用的功能来加速应用程序的开发。

2.springboot项目怎么创建

        2.1 使用 Spring Initializr:

Spring Initializr 是一个在线工具,可以快速生成 Spring Boot 项目骨架。访问 Spring Initializr,选择项目的构建工具(Maven 或 Gradle)、Spring Boot 版本、项目元数据(如 Group、Artifact、Name 等),然后选择所需的依赖项。点击“Generate”按钮下载生成的项目压缩包。

        2.2 使用 IDE:

在 IntelliJ IDEA  中,你也可以直接使用 Spring Initializr 创建 Spring Boot 项

  • IntelliJ IDEA

    • 选择 File > New > Project...
    • 选择 Spring Initializr,点击 Next
    • 配置项目的属性,选择所需的依赖,点击 Finish

3.手动创建

如果你更喜欢手动创建项目,可以通过创建 Maven项目,并在 pom.xml 文件中添加 Spring Boot 相关的依赖。以下是一个 Maven 项目的示例:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

4.springboot的优点

  1. 自动配置: Spring Boot 提供了大量的自动配置选项,简化了开发配置工作。它根据项目的依赖和环境自动配置应用程序。

  2. 开箱即用: Spring Boot 提供了一整套开箱即用的功能,包括内嵌的 Web 服务器(如 Tomcat、Jetty 或 Undertow)、监控、管理端点等。

  3. 简化配置: 通过 application.propertiesapplication.yml 配置文件,简化了应用程序的配置。

  4. 快速启动: 使用 Spring Boot 的内置服务器,可以快速启动应用程序,减少了开发和测试过程中的复杂性。

  5. 生产就绪: Spring Boot 提供了生产环境所需的监控和管理功能,例如 Actuator,可以用来检查应用程序的健康状态和性能指标。

5.springboot与spring框架的关系

  • Spring 框架 是一个广泛使用的企业级框架,用于创建 Java 应用程序。它提供了多种功能,包括依赖注入、事务管理、AOP 等。

  • Spring Boot 是 Spring 框架的一个扩展,旨在简化 Spring 应用程序的开发过程。它提供了自动配置、开箱即用的功能和生产就绪的特性,以加速开发和部署。

以下是一个简单的 Spring Boot 应用程序示例:

DemoApplication.java(Spring Boot 主类):

package com.example.demo;

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

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

UserController.java(Controller 示例):

package com.example.demo;

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

@RestController
@RequestMapping("/api")
public class UserController {

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

application.properties(配置文件示例)

server.port=8081

在这个示例中,Spring Boot 主类 DemoApplication 启动了 Spring Boot 应用程序。UserController 提供了一个简单的 REST API 端点 /api/greet,它返回一个字符串 "Hello, Spring Boot!"。application.properties 配置文件设置了服务器端口为 8081。

使用 Spring Boot,你可以快速创建和启动一个功能齐全的应用程序,简化了配置和部署过程。

6.全局处理Controller层异常

相关注解:

  1. @ControllerAdvice :注解定义全局异常处理类
  2. @ExceptionHandler :注解声明异常处理方法
    @ControllerAdvice
    @ResponseBody
    public class GlobalExceptionHandler {
    
        /**
         * 请求参数异常处理
         */
        @ExceptionHandler(MethodArgumentNotValidException.class)
        public ResponseEntity<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException ex, HttpServletRequest request) {
           ......
        }
    }
    

 7.@SpringBootApplicantion注解

这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。

@SpringBootApplication
public class SpringSecurityJwtGuideApplication {
      public static void main(java.lang.String[] args) {
        SpringApplication.run(SpringSecurityJwtGuideApplication.class, args);
    }
}

我们可以把 @SpringBootApplication看作是 @Configuration@EnableAutoConfiguration@ComponentScan 注解的集合。

package org.springframework.boot.autoconfigure;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
    @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
    @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
   ......
}

package org.springframework.boot;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

这三个注解的作用分别是:

  • @EnableAutoConfiguration:启用 SpringBoot 的自动配置机制
  • @ComponentScan:扫描被@Component (@Repository,@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。
  • @Configuration:允许在 Spring 上下文中注册额外的 bean 或导入其他配置类

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值