Spring学习1 - Spring的优缺点、Spring通过BeanFactory管理、创建、获取对象

13 篇文章 0 订阅

1. 传统MVC分离遇到的问题 - 不使用框架

缺点
依赖问题:层级间的依赖 - Service需要Dao、Controller需要Service才能运行,一旦找不到依赖的对象,则编译不通过
事务问题:难以管理事务
方法增强问题:一旦想拓展某个方法,需要在很多地方同时修改,实在是太麻烦

2. Spring的特点

特点
控制反转IOC:通过Spring容器配置文件进行Bean对象配置、创建、管理
容器管理对象:IOC一个意思,管理应用对象的生命周期 - BeanFactory
依赖注入DI:Spring创建对象时,自动将该对象内依赖属性一同初始化
面向切面
轻量级、低入侵 -- 不会破坏原先自己写的代码结构

3. Spring管理对象、获取对象

  • 步骤
    1. 导入相应的Spring包以及依赖包
    2. 配置XML文件- 通过该配置文件来管理Bean类
    3. 创建BeanFactory对象、通过这个工厂对象来获取配置在第二步骤的XML类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rluS1Nfe-1576776629963)(en-resource://database/13395:1)]

  配置文件XML
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Cvm4bDT-1576776629979)(en-resource://database/13397:1)]


  测试管理类

public class UserDaoService {	
	public void service1() {
		System.out.println("成功的运行到service1方法");
	}	
}

通过Spring容器获取对象

public static void main(String[] args) {


    // 1. 获取配置文件的XML源
    Resource resource = new ClassPathResource("applicationContext.xml");

    // 2. 解析配置文件、并且将对象自动生成放在一个容器上,用时从这个工厂上取就行了
    BeanFactory factory = new XmlBeanFactory(resource);
    System.out.println(factory);

    // 3. 使用配置文件的 name、id名 获取对象 - Object对象 - 故需强转
    UserDaoService bean1 = (UserDaoService) factory.getBean("userDaoService");
    bean1.service1();

    // 3. 使用配置文件的name、id并且传入生成的Class对象 -- 获取指定的对象 -- 不需强转
    UserDaoService bean2 = factory.getBean("userDaoService", UserDaoService.class);
    bean2.service1();

    // 3. 使用Class对象查看配置文件 class是否有,有则返回指定对象,无则抛出异常
    UserDaoService bean3 = factory.getBean(UserDaoService.class);
    bean3.service1();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值