Spring.1

一、spring介绍

1、spring是什么?

spring是轻量级的JAVAEE应用开源框架

其特点包括模块化、灵活性、高度可测试性和一组丰富的API,适用于多种Java应用场景,包括后端服务、微服务、大数据处理等。 

2、spring的核心概念

IoC :控制反转

IoC是Spring最核心的理念之一,它将对象的创建和依赖关系的管理交给Spring容器处理,而不是在代码中手动管理,这使得代码更加模块化和松散耦合。
 

AOP:切面编程

AOP则允许开发者对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化,将这些服务模块化,并以声明的方式将它们应用到需要的组件上。

二、IOC

1.耦合


耦合:对象之间的依赖关系,耦合度越高维护的成本就越高。
耦合的原因:硬编码

这就好比两块乐高积木,如果两个积木的连接越紧密,则说明其耦合度越高;反之,如果两块积木的连接十分松散,可以随意拆卸,则说明其耦合度低。

2.IoC如何控制反转?

想象一下,你正在玩一个复杂的拼图游戏,每个拼图块(对象)需要与特定的其他块(依赖)配合才能完成整个画面。通常情况下,你可能需要自己找到每个块并将其正确放置,这就像在代码中手动创建对象并管理它们之间的依赖关系。但是,使用IoC(控制反转),就像是有一个聪明的助手(Spring容器),它负责理解整个拼图的结构,然后自动将正确的拼图块放到你的手中。这样,你只需要专注于拼图的某个部分,而不用关心每个块从哪里来,或者它需要和哪些块配合,这使得你的游戏(代码)更加简单和模块化。

原先ObjectB是依靠ObjectA来创建的,一但A有了什么风吹草动,B也需要改变,这就是控制的“正向”。这也是我们常说的耦合度高,不便于我们测试与修改代码。

现在,我们创建一个IoC容器,由它全权负责创建ObjectB,ObjectA不再负责参与ObjectB的创建这就是控制的“反转”。降低耦合度,测试与修改代码就方便了很多

通过这种方式,对象的创建和依赖管理被委托给IoC容器,而对象本身只需要声明它需要哪些依赖,而不需要关心这些依赖是如何被创建和提供的。

3.自定义工厂的IOC解决程序耦合

OK,了解了IoC如何进行控制反转后,我们来试着自定义工厂IoC来解决程序耦合:
 -----------BeanFactory:①反射创建对象 ②把对象放map-----------
①把service和dao配置到bean.properties
②读取bean.properties


③通过反射创建对象,并装到IOC容器中


④使用对象时,直接从IOC容器中获得

4.spring的ioc解决程序耦合


       (1)pom.xml
            spring-context
       (2)applicationContext.xml
            <bean id="userDao" class="com.jy.dao.UserDaoImpl"></bean>
            <bean id="userService" class="com.jy.service.UserServiceImpl"></bean>
       (3)测试
             ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
             UserService userService = ac.getBean("userService", UserService.class);
             userService.addUser();

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值