开发基于Spring的简单应用程序 定义两个接口:AlarmFunction 定义类PoliceCar,FireCar实现该接口 分别练习Spring两种不同的依赖注入方式
时间: 2024-12-08 15:14:59 浏览: 9
开发基于Spring的简单应用程序通常涉及以下几个步骤:
首先,你需要定义一个接口。例如,我们创建一个名为`AlarmFunction`的接口,它代表一个可以触发警报的功能:
```java
// AlarmFunction.java
public interface AlarmFunction {
void alarm();
}
```
然后,我们可以创建两个实现了这个接口的具体类,比如`PoliceCar`和`FireCar`,它们分别表示警察车和消防车各自特有的警报功能:
```java
// PoliceCar.java
@Component
public class PoliceCar implements AlarmFunction {
@Override
public void alarm() {
System.out.println("Police Car Alarm!");
}
}
// FireCar.java
@Component
public class FireCar implements AlarmFunction {
@Override
public void alarm() {
System.out.println("Fire Car Siren!");
}
}
```
接下来,Spring支持两种常用的依赖注入方式:
1. **构造函数注入**(Constructor Injection):Spring会查找匹配的构造函数,并将找到的Bean实例作为参数传递给构造函数。在这种方式下,你可以在组件上使用`@Autowired`注解:
```java
// Service.java (假设这里有一个需要AlarmFunction的服务)
@Autowired
private AlarmFunction alarmFunction;
```
2. ** setter 注入**(Field Injection):Spring会在适当的时候调用字段的setter方法来注入依赖。同样,我们可以标记字段为`@Autowired`:
```java
// Service.java (假设这里是同样的服务)
private AlarmFunction alarmFunction;
@Autowired
public void setAlarmFunction(AlarmFunction alarmFunction) {
this.alarmFunction = alarmFunction;
}
```
在Spring配置文件中,你只需要声明这些组件(如`<bean>`标签),Spring就会自动处理依赖注入。
现在你已经有了简单的Spring应用,包含接口和实现它的类,并展示了两种依赖注入方式。
阅读全文