spring的IOC操作

1、Ioc底层原理实用技术

      (1)xml配置文件

      (2)dom4j解析xml

      (3)工厂设计模式

      (4)反射

用以上技术来完成ioc的操作。

Ioc就是为了完成程序的高内聚低耦合。下图中左边的程序是传统的调用对象方法,右边是使用了工厂模式的升级版,耦合度没有右边高,但是也存在一定的耦合。

Ioc原理

指定要创建对象的类,即要想创建userService对象类,就得在beans.xml中对该类进行配置。

下面是创建一个项目的步骤

创建新的项目,导入所需的jar包。

将所需的jar包复制到lib下,刷新后Web App Libraries下回出现所需jar包。web中jar包名称前的奶瓶形状代表导入成功。

第一部分完成。

原始做法为

现在我们把对象的创建过程交给spring的配置文件来完成。当然低层用到的是反射,但是我们不用去了解怎么写反射代码,只需要知道反射的过程由spring完成就行。所以我们的第二部只需要创建一个类方法就行。

以上完成了第二步。

根据路径找到约束的html,在浏览器中打开html文件中的最后一个html文件,将滚动条滚到最下面找到约束,粘到配置文件中,其实每个配置文件里的约束都是一样的,所以只需要粘过来就行了,具体怎么找的只是在这里随便记录一下,不用太在意。

在src下新建一个bean1.xml。class中是类的全路径。

测试类

运行测试类后输出

测试类的执行的方法是

记住在测试类前面加@Test哦

对了 目录页附上吧

以上主要的目的就是将创建对象的过程交给spring的配置文件来完成。这是spring的一个入门。

Spring IoC (Inversion of Control) 中,操作Bean主要有以下几种方式: 1. **通过@Autowired注解**: 通过在字段上添加@Autowired注解,Spring会自动查找并注入相应的Bean。例如: ```java @Autowired private MyService myService; ``` 2. **通过@Autowired和Qualifier**: 当需要注入特定名称或类型的Bean时,可以配合Qualifier注解指定。如: ```java @Autowired @Qualifier("mySpecialService") private MyService specialService; ``` 3. **通过ApplicationContext**: 可以直接通过ApplicationContext的getBean方法手动获取Bean,提供Bean名字或类型作为参数: ```java ApplicationContext context = ...; MyService service = context.getBean(MyService.class); ``` 4. **使用Factory Bean**: 用于更复杂的情况,比如创建或初始化过程涉及到复杂的业务逻辑。Factory Bean需实现`org.springframework.beans.factory.FactoryBean`接口。 ```java MyCustomFactory factory = new MyCustomFactory(); MyService service = (MyService) factory.getObject(); // 或者直接用getBean() ``` 5. **通过XML配置**: 在Spring 3.x及以前版本,还可以通过XML配置文件中的`<bean>`标签手动声明和配置Bean。这种方式已经逐渐被Java配置取代,但仍可用于一些遗留应用。 实验小结: - 使用Spring IoC能显著提高代码的模块化和松耦合程度。 - 注解驱动的自动装配方便了组件之间的依赖关系管理。 - Java Config使得代码结构更加清晰,利于测试和维护。 - 在选择操作方式时,应根据项目需求和团队规范来平衡灵活性和简洁性。 **相关问题--:** 1. 如何在Spring中避免循环依赖? 2. Factory Bean和普通Bean的区别是什么? 3. Spring是如何实现依赖注入的?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值