欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Spring核心功能——IOC+DI(控制反转和依赖注入)

Spring核心功能——IOC+DI(控制反转和依赖注入)

2024/11/30 18:53:59 来源:https://blog.csdn.net/hang_sa_mu/article/details/141873278  浏览:    关键词:Spring核心功能——IOC+DI(控制反转和依赖注入)

目录

1、引言 

2、介绍

3、概念 

4、创建对象的注解

5、属性赋值(依赖注入的注解)

 6、演示


 

1、引言 

以前写的[登录+查询全部功能]

public class LoginServlet extends HttpServlet{AdminService service;void doGet(){service.findAdminByLogin(username,password);}
}
​
public interface AdminService{Admin findAdminByLogin(String username,String password);
}
public class AdminServiceImpl implements AdminService {Admin findAdminByLogin(String username,String password) {// ...   }
}

2、介绍

IOC是Spring框架的核心功能之一,IOC(inversion of control)控制反转

控制: 控制创建对象的能力

反转: 原来创建对象是自己做,反转就是将创建对象的能力交给Spring

3、概念 

IOC(控制反转): 将创建对象的能力反转给Spring,由Spring创建对象

DI(dependency injection) 依赖注入,即 属性赋值


4、创建对象的注解

  • @Controller 在控制层代码上使用

  • @Service 在业务层代码上使用

  • @Repository 在数据层代码上使用

  • @Component 在其他代码上使用

5、属性赋值(依赖注入的注解)

  • @Autowired

  • @Resource

 6、演示

AdminService和AdminServiceImpl

public interface AdminService {void login();
}
​
@Service // 加上该注解,AdminServiceImpl类就会被spring容器创建对象
public class AdminServiceImpl implements AdminService{
​@Overridepublic void login() {System.out.println("业务层执行..." );}
}

AdminController

@Controller // 创建对象
public class AdminController {
​// 在控制层中需要使用业务层对象// 不再主动new对象,而是从容器中拿// @Autowired注解就会从容器中找到该类型的对象赋值给该变量// 即这就是属性赋值,也就是依赖注入,即DI@Autowired // 属性赋值private AdminService adminService;
​@GetMapping("/login")public String login() {adminService.login();return "ok.html";}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com