Spring IoC、DI入门小程序
2023-09-27 14:20:23 时间
Alt+/智能提示xml配置文件节点及属性;在接口上使用Ctrl+T可以提示其实现类
一、IoC控制反转(将创建对象的权利交给spring)入门小程序
1、引入jar包
2、工程基本结构
3、新建UserService类
package hjp.spring.demo1; import org.junit.Test; public class UserService { public void addUser() { System.out.println("addUser"); } }
4、新建beans.xml文件配置bean
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userServiceId" class="hjp.spring.demo1.UserService"></bean> </beans>
5、新建测试类TestApp
import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestApp { @Test public void demo1() { // 1、加载配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("hjp/spring/demo1/beans.xml"); // 2、从Spring工厂获得对象 UserService userService = (UserService) applicationContext.getBean("userServiceId"); userService.addUser(); } }
二、DI依赖注入(自动实例化类中属性对象)入门小程序
1、沿用上面工程
2、新增包,结构如下
3、新建BookDao类
package hjp.spring.demo2; public class BookDao { public void save() { System.out.println("save book"); } }
4、新建BookService类
package hjp.spring.demo2; public class BookService { private BookDao bookDao; public BookDao getBookDao() { return bookDao; } public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } public void addBook() { bookDao.save(); } }
5、新建beans.xml文件配置bean
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 创建dao --> <bean id="bookDaoId" class="hjp.spring.demo2.BookDao"> </bean> <!-- 创建service --> <bean id="bookServiceId" class="hjp.spring.demo2.BookService"> <!-- <property>进行依赖注入过程,底层将执行setter方法 name 指BookService类bookDao属性 ref 指属性实例引用 --> <property name="bookDao" ref="bookDaoId"></property> </bean> </beans>
6、新建测试类TestAPP
package hjp.spring.demo2; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestApp { @Test public void demo1() { //获得容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("hjp/spring/demo2/beans.xml"); //获得对象 BookService bookService = applicationContext.getBean("bookServiceId", BookService.class); bookService.addBook(); } }
相关文章
- 深入实践Spring Boot2.1.2 实体建模
- 《Spring 5 官方文档》18. Web MVC 框架(三)
- 69道Spring面试题和答案
- 我做了个违背程序员的决定,开源了这份 SPRING 全家桶神级手册
- Spring Cloud Alibaba 简介(上)
- spring-mybatis-data-common程序级分表操作实例
- Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
- 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发
- 普通spring jsp+mybatis项目修改为springboot + jsp +mybatis项目
- 这个Spring Security登录插件牛啊,验证码、小程序、OAuth2都能快速接入
- Spring Security 整合 微信小程序登录的思路探讨
- Spring Boot 2 实战:使用 Undertow 来替代Tomcat 作为Web 容器
- spring-data-jpa与mybatis的对比
- Spring Boot的exit code
- spring mvc环境之引入spring容器(七)
- Spring Boot—15SpringJPA
- 微信小程序云开发 | 微信小程序与Spring Boot整合开发
- Spring MVC 3 深入总结
- Spring MVC入门——day07
- Spring Security教程(5)---- 国际化配置及UserCache
- 曹工说Spring Boot源码(13)-- AspectJ的运行时织入(Load-Time-Weaving),基本内容是讲清楚了(附源码)
- Spring揭秘笔记