目录
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";} }