JavaEE--Spring介绍,工厂模式介绍,IOC配置

  • 接口:实现分工。降低耦合

  • 耦合:一个类的属性是另一个类的对象。牵一发动全身。不利于扩展和维护。

  • Spring 分为两部分IOC、AOP

    • IOC
      思想:控制反转
      操作:依赖传递

    • 控制反转思路介绍
      控制反转:我需要,但我不主动取要。谁符合我的标准谁来找我,通过IOC容器这个中介。
      这是思维方式叫控制反转,这种做法叫(扫包加注解@Component)依赖注入
      让cpu来找主板。需要媒介。

Spring配置过程:

web.xml监听器
配置文件:applicationContext 扫描带有包
给类加注解
取IOC中的值

例子:
一个主板 有多个cpu类型(i3 i5 i7)
1.创建cpu接口类 接口降低耦合
在这里插入图片描述在这里插入图片描述
2. 还存在问题:要修改MyTest程序,用的人多很麻烦
解决:

工厂模式

用:直接从工厂获取组装好的执行。
修改:只修改工厂中的代码即可。
在这里插入图片描述
在这里插入图片描述

IOC

IOC也是工厂模式
将工厂中的内容放到配置文件中

IOC过程描述:

配置监听:启动时读配置文件
读到扫描包:扫描Test包,扫描其中的类
类上有Component注解:将类放入IOC容器

1. 配置文件applicationContext配置(1)

  1. 新建spring配置文件
    sping配置文件与springmvc一样
    spring配置文件默认命名:applicationContext
    在这里插入图片描述
    在这里插入图片描述

什么是正转和反转:

正转:
主板需要cpu,在主板中主动传入cpu的值。(开发中不这样用)
在这里插入图片描述

<bean id="cpu" class="com.springmvc.Test.I5"></bean> 
<bean id="mainBoard" class="com.springmvc.Test.MainBoard">
        <property name="cpu" ref="cpu"></property>
</bean>

取出:
在这里插入图片描述

		ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");//读spring配置文件 参数:哪个配置文件
        //取出对象
        MainBoard mainBoard = (MainBoard)context.getBean("mainBoard");//传入要读取的对象id
        mainBoard.fun();

反转:

2. web.xml配置监听器(2)

不同的监听器监听不同的东西
在这里插入图片描述

3. IOC容器看作是一个容器

控制反转只能发生在IOC容器中,要把内容登记在其中
在这里插入图片描述

3.1 如何将类放入IOC容器(用扫描包)

  1. 配置bean结点。
    在这里插入图片描述

  2. 扫描包(✓)
    在这里插入图片描述

3.2 如何取到IOC中的东西(加Resource注解)

实现控制反转:
cpu需要赋值,从IOC容器中直接拿,加Resource注解(Cpu自己不赋值,IOC容器中有谁符合cpu 的实现自己来赋值)
在这里插入图片描述

3.3 加Controller注解放入IOC并取出使用的演示

  • 加Controller注解的也会放入IOC容器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    换i5时,把注解加到i5上即可

3.4 有多个注解的情况

  • 情况1:i3 i5 i7全加了注解,不知道选哪个了。
    在这里插入图片描述
    解决:删掉多余注解(✓)、选择想要的:@Resource(name = “i3”)在这里插入图片描述

3.5 有哪些注解能实现放入IOC容器

(多种注解一样的功能,只是方便给人看的)
@Component
@Repository //dao层可以用这个,但是dao层不需要注解
@Service //Service层
@Controller //Controller层用
@Configuration//配置

Grade放入IOC容器演示

service实现放入IOC容器
在这里插入图片描述在这里插入图片描述
不赋值直接从IOC容器拿
在这里插入图片描述
在这里插入图片描述

扫包:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值