// Spring框架示例代码:使用Spring的依赖注入(DI)和控制反转(IoC)
// 1. 引入必要的依赖(在pom.xml中)
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
// 2. 创建一个简单的Java类,使用Spring管理Bean
// 定义一个接口
public interface MessageService {
void sendMessage(String message);
}
// 实现该接口
public class EmailService implements MessageService {
@Override
public void sendMessage(String message) {
System.out.println("Sending email: " + message);
}
}
// 定义一个需要依赖MessageService的类
public class MessageSender {
private MessageService messageService;
// 使用构造函数注入
public MessageSender(MessageService messageService) {
this.messageService = messageService;
}
public void send(String message) {
messageService.sendMessage(message);
}
}
// 3. 配置Spring容器(可以使用XML或注解配置,这里使用Java配置)
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public MessageService messageService() {
return new EmailService();
}
@Bean
public MessageSender messageSender() {
return new MessageSender(messageService());
}
}
// 4. 使用Spring容器创建和管理Bean
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainApp {
public static void main(String[] args) {
// 创建Spring应用上下文
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
// 获取MessageSender Bean
MessageSender sender = context.getBean(MessageSender.class);
// 使用Bean发送消息
sender.send("Hello, Spring!");
}
}
pom.xml
文件引入了Spring的核心库spring-context
。MessageService
接口,并实现了EmailService
类来发送邮件。MessageSender
类依赖于MessageService
接口的具体实现。通过构造函数注入的方式,将EmailService
实例传递给MessageSender
。AppConfig
来定义Bean。@Configuration
注解标识这是一个配置类,@Bean
注解用于定义Bean。AnnotationConfigApplicationContext
加载配置类并获取Bean实例,最终调用send
方法发送消息。这段代码展示了如何使用Spring框架进行依赖注入和控制反转的基本概念。
上一篇:java 遍历文件夹
下一篇:java map获取key值
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站