首页 > 其他分享 >Spring Boot的常用注解

Spring Boot的常用注解

时间:2024-05-17 14:09:21浏览次数:22  
标签:Spring org Boot springframework class 注解 import public

在Spring Boot中,注解(Annotation)是核心特性之一,广泛用于配置和简化开发。以下是Spring Boot中一些常用的注解及其示例:

1. @SpringBootApplication

@SpringBootApplication是一个组合注解,包括了@Configuration@EnableAutoConfiguration@ComponentScan。它通常用在主类上,标识一个Spring Boot应用的入口。

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

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

2. @RestController

@RestController结合了@Controller@ResponseBody,用于创建RESTful Web服务。

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

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

3. @RequestMapping

@RequestMapping用于将HTTP请求映射到处理器方法上。可以用于类或方法级别。

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

@RestController
@RequestMapping("/api")
public class ApiController {
    @RequestMapping(value = "/users", method = RequestMethod.GET)
    public List<String> getUsers() {
        return Arrays.asList("User1", "User2", "User3");
    }
}

4. @Autowired

@Autowired用于自动注入依赖关系。它可以应用于构造函数、方法或字段上。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MyService {
    private final MyRepository myRepository;

    @Autowired
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    // 其他业务逻辑
}

5. @Service

@Service用于标识服务层的组件,Spring会自动将其注册为Bean。

import org.springframework.stereotype.Service;

@Service
public class UserService {
    public String getUserById(Long id) {
        // 业务逻辑
        return "User" + id;
    }
}

6. @Repository

@Repository用于标识数据访问层的组件,通常与数据库交互。

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

public interface UserRepository extends JpaRepository<User, Long> {
    // 自定义查询方法
}

7. @Configuration

@Configuration用于定义配置类,该类可以包含@Bean注解的方法,这些方法会返回Spring管理的Bean。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

8. @EnableAutoConfiguration

@EnableAutoConfiguration告诉Spring Boot基于类路径中的Jar依赖自动配置Spring应用上下文。通常不直接使用,而是通过@SpringBootApplication间接使用。

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

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

9. @Component

@Component泛指Spring管理的组件。可以标记为Bean的类,Spring会自动扫描并注册这些类。

import org.springframework.stereotype.Component;

@Component
public class MyComponent {
    public void doSomething() {
        // 组件逻辑
    }
}

10. @Value

@Value用于注入外部化配置的属性值。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {
    @Value("${app.name}")
    private String appName;

    public void printAppName() {
        System.out.println(appName);
    }
}

这些注解极大地简化了Spring Boot应用的配置和开发工作,使得开发者可以专注于业务逻辑。

标签:Spring,org,Boot,springframework,class,注解,import,public
From: https://www.cnblogs.com/zxingduo/p/18197692

相关文章

  • 计算机体系结构-Booth乘法
    原理解释电路实现以Radix-4Booth编码为例,Booth乘法的核心是部分积的生成,需要生成\(N/2\)个部分积,每个部分积与\([X]_补\)有关,存在\(-X,-2X,+X,+2X,0\)这五种可能,其中减去\(X_{补}\)的操作可以认为是按位取反的\(X_{补}\)在末尾+1。为了硬件实现方便,可以将末位1操作提取出来,假......
  • SpringBoot给所有的 Model添加属性
    添加全局数据@ControllerAdvice是一个全局数据处理组件,因此也可以在@ControllerAdvice中配置全局数据,使用@ModelAttribute注解进行配置,代码如下: 运行测试结果:  ......
  • Springcloud学习笔记67--springboot 整合 任务调度框架Quartz
    1.背景定时任务Job的作业类中无法注入Service等由Spring容器所管理的Bean。例如下面这种情况,TaskCronJobService就无法成功注入。importjava.util.Iterator;importjavax.annotation.Resource;importorg.quartz.Job;importorg.quartz.JobExecutionContext;importor......
  • springboot集成@DS注解实现数据源切换(转载)
    springboot集成@DS注解实现数据源切换启用@DS实现数据源切换POM内添加核心jar包yml配置"核心"-使用@DS注解最后启用@DS实现数据源切换POM内添加核心jar包 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-start......
  • springboot怎么将List集合数据转成JSON数组
    SpringBoot默认使用Jackson框架将Java对象转换成JSON格式。要转换List集合数据为JSON数组,可以采用以下两种方法:1.使用@ResponseBody注解在SpringBoot中,可以使用@ResponseBody注解标注要返回的List集合数据,让Spring自动将其转换成JSON数组。例如:@GetMapping("/list")@Respo......
  • 关于SpringBoot项目使用Hutool工具进行json序列化时出现Null值过滤或者丢失的问题(转
    ##问题描述:SpringBoot项目中,一直使用的时Hutool的json转换工具,被强制要求不能使用fastJson工具;之前都没什么问题,突然有一次使用parseObj()进行json字符串转换json对象时,突然报错:Noserializerfoundforclasscn.hutool.json.JSONNullandnopropertiesdiscoveredtocreate......
  • Springcloud学习笔记66---@Autowired注入为null的几种情况
    1.在应用的Filter或Listener中使用了@Autowired原因:因为Filter和Listener加载顺序优先于spring容器初始化实例,所以使用@Autowired肯定为null了~~解决:用ApplicationContext根据bean名称(注意名称为实现类而不是接口)去获取bean,随便写个工具类即可2.你写的代码有问题,没加@Service、......
  • { [key: string]: any } 是 TypeScript 中的一种类型注解
    {[key:string]:any} 是TypeScript中的一种类型注解,它描述了一个对象的类型。让我来解释一下这个类型注解,并举一个例子来说明它的用法。在TypeScript中,{[key:string]:any} 表示一个对象,其中键是字符串类型,而值可以是任意类型。{} 表示这是一个对象类型。[key:s......
  • Java面试题:Spring中的循环依赖,给程序员带来的心理阴影
    循环依赖通常发生在两个或多个SpringBean之间,它们通过构造器、字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环。下面是一个使用字段注入(即使用@Autowired)导致的循环依赖的示例: 示例代码: 假设我们有两个类,ClassA和ClassB,它们相互依赖:publicclassClassA{......
  • 教你如何搞定springboot集成kafka
    本文分享自华为云社区《手拉手入门springboot+kafka》,作者:QGS。安装kafka启动Kafka本地环境需Java8+以上Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。Kafka启动方式有Zookeeper和Kraft,两种方式只能选择其中一种启动,不能同时使用......