spring常用标签

00000000O / 2023-08-13 / 原文

 

@Autowired

@Autowired注解用于实现依赖注入(Dependency Injection,DI)。它可以应用于类属性、方法和构造函数。
当 Spring 容器创建一个 bean 时,@Autowired 注解会自动将容器中匹配的 bean 实例注入到被标注的属性、方法或构造函数中。这样可以降低代码之间的耦合性,提高可维护性。
在Spring中,Bean的默认作用域是单例(Singleton),这意味着在Spring容器中只会存在一个实例。所以,当你在两个类(Class A和Class B)中使用@Autowired注解注入相同类型的Bean(C类型)时,这两个类中的C实例是相同的。
 
修饰方法
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class ExampleService {

private final ExampleRepository exampleRepository;

@Autowired
public ExampleService(ExampleRepository exampleRepository) {
    this.exampleRepository = exampleRepository;
}
}
在这个例子中,ExampleService 类依赖于 ExampleRepository 类的实例。通过在构造函数上添加 @Autowired 注解,我们告诉 Spring 自动注入一个 ExampleRepository 类型的 bean。这样,我们不需要手动创建和管理这些对象及其依赖关系,Spring 会帮我们处理
 
修饰属性
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MessageService {

// 使用 @Autowired 注解注入依赖
@Autowired
private MessageRepository messageRepository;

public List<‌Message> getAllMessages() {
    // 调用 messageRepository 的方法获取数据
    return messageRepository.findAll();
}

}

  

 

 

Java Bean

Java Bean 是 Java 语言中的一种特殊类型的类。它是一个遵循特定编码规范的可重用组件,用于封装多个属性和对这些属性进行操作的方法。Java Bean 的设计遵循 JavaBean 规范,该规范主要定义了如何创建一个易于使用、可重用和可移植的组件。 Java Bean 的主要特点包括:
1. **序列化**:Java Bean 具有序列化能力,这意味着它可以将自己的状态保存为字节流,并在稍后需要时将其恢复。这使得 Java Bean 在不同的环境中可移植和易于存储。
 
 
2. **无需参数的构造函数**:Java Bean 必须提供一个无需参数的构造函数,以便可以在没有任何参数的情况下实例化。
 
 
3. **私有属性**:Java Bean 的属性通常是私有的,这意味着它们不能被类的外部直接访问。为了访问和修改这些属性,需要使用公共的 getter 和 setter 方法。
 
 
4. **遵循命名规范**:Java Bean 的 getter 和 setter 方法遵循特定的命名规范。对于布尔类型的属性,getter 方法通常以 is 开头,而其他类型的属性使用 get 开头。类似地,setter 方法使用 set 开头。例如,对于属性 name,Java Bean 应提供 getName() 和 setName(String name) 方法。 Java Bean 常用于数据传输、数据封装和在各种框架中实现数据交互。例如,在 Java 企业应用中,Java Bean 通常用作表示数据库中的数据实体,或者用于在表现层和业务逻辑层之间传递数据。
 

@RestController

@RestController是一个Spring框架中的注解,它用于定义一个类作为RESTful Web服务的控制器。简化RESTful Web服务的创建。

@RestController是一个组合注解,包括@Controller和@ResponseBody两个注解。

@RestController所标注的类将会被视为一个(REST API)控制器,而其中的方法默认都会返回JSON或其他相应的数据格式,而非视图(如HTML页面)。

 1 import org.springframework.web.bind.annotation.GetMapping;
 2 import org.springframework.web.bind.annotation.RestController;
 3 
 4 @RestController
 5 public class HelloWorldController {
 6 
 7 @GetMapping("/hello")
 8 public String helloWorld() {
 9     return "Hello, World!";
10 }
11 
12 }
在这个例子中,我们创建了一个名为HelloWorldController的类,并使用@RestController注解标注。
我们还定义了一个名为helloWorld的方法,它使用@GetMapping注解来映射HTTP GET请求到/hello路径。
当接收到一个GET请求时,helloWorld方法将被调用,并返回字符串"Hello, World!"。
由于@RestController注解的存在,返回的字符串将自动转换为JSON或者XML格式的响应,具体取决于客户端请求的Accept头部信息。
总之,@RestController注解在Spring框架中用于创建RESTful Web服务的控制器,并简化了将方法返回值转换为JSON或XML响应的过程。