什么是注入,通俗易懂举例说明
时间: 2024-11-09 18:17:01 浏览: 33
"注入"通常是指依赖注入(Dependency Injection),是一个软件设计模式,它允许你将组件之间的依赖关系从代码内部解耦出来,改为通过外部方式(如配置文件、框架服务等)注入到组件中。这样做的好处是可以提高代码的灵活性和可测试性。
举个简单的例子,假设你正在编写一个应用,这个应用需要使用数据库操作。在传统的实现中,你可能会直接在代码里创建数据库连接:
```java
class UserService {
private final DatabaseConnection db;
public UserService(DatabaseConnection db) {
this.db = db;
}
// 使用db进行数据库操作...
}
```
但在采用依赖注入后,你不会在`UserService`的构造函数中硬编码`DatabaseConnection`,而是由外部系统提供:
```java
public class UserService {
private DatabaseConnection db;
public UserService() { // 构造函数变为空,因为不再需要传入db
}
// 注入使用
@Autowired
public void setDatabaseConnection(DatabaseConnection db) {
this.db = db;
}
// 现在可以在setDatabaseConnection后使用db
// ...
}
```
在这里,`@Autowired`是Spring框架中的注解,表示当创建`UserService`实例时,会自动为其注入一个`DatabaseConnection`实例。这样做的好处是,如果你改变了数据库实现(比如从JDBC切换到MyBatis),只需要修改配置,而不需要修改`UserService`本身。这体现了“开闭原则”——对扩展开放,对修改关闭。
阅读全文