1. 环境搭建

    1.   导入Sring对应的jar包
    2. 导入Spring依赖的commons-loggin包
    3. 导入log4j.properties在src下
    4. 导入ApplicationContext.xml在任意目录下
  2. 是一个轻量级的企业开发框架
    1.   核心:IOC , AOP编程
    2. IOC:也就是inverse of control 控制反转 
      1.   就是讲创建对象的权利转移到工厂中,从而实现解耦合和对于jdk功能的增强
      2. 对于常见的Spring工厂
        1.   本地使用的Spring工厂类  ClassPathXmlApplicationContext();
  3. 实际应用
    1. 对于单个配置中

      1.   控制对象创建的次数:单个:songleton
      2.   多个:protoprototype
    2.   如何使用
      1.       将对应的配置写入applicationContext.xml中

        <?xml version="1.0" encoding="UTF-8"?>
        <beans ><bean id="us" class="com.youyi.test.UserServiceimpl" scope="prototype"></bean><--比如这里就是id就是相当于引用名,class就是实际上的全类名,也就是指向的类,体现了一部分解耦合--><!--这里的关系依然是反射解决:通过id找到对应的class找到全类名生成对应的类对象再newInstance生成对应的类的对象-->
        </beans>

      2.     对应实际java的使用
        import org.springframework.context.ApplicationContext;
        import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanTest1 {public static void main(String[] args) {//这里就是创建spring工厂的本地实现类ClassPathXmlApplicationContext cpc =  new ClassPathXmlApplicationContext("classpath:/com/youyi/test/applicationContext.xml");Object bean = cpc.getBean("us");    //通过实际的引用名去找到对应的classSystem.out.println(bean);Object bean2 = cpc.getBean("us");   //如果是单实例的选项的话这里bean和bean2打印出来的地址是一样的.但是如果是prototype的话二者属于多实例创建并不是同一个实例就不一样System.out.println(bean2);}
        }

        <!--这里是xml文件还是配置的时候注意的地方:--><bean id="addressa" class="com.youyi.test3.Address"><property name="city" value="洛阳"></property><property name="zipCode" value="471003"></property></bean><!--对象当属性要先配置好这个对象放到工厂里之后ref引用就好--><bean id="user" class="com.youyi.test3.User"><property name="username" value="zhangshun"></property><property name="age" value="15"></property>//这是String和基本数据类型和包装类的写法<property name="alive" value="true"></property><property name="hobby">//这是集合和数组的写法<list><value>"抽烟"</value><value>"喝酒"</value><value>"烫头"</value><value>"爱老婆"</value></list></property><property name="friends">//这是map集合<map><entry key="1" value="张思梦"></entry><entry key="2" value="杜梦媛"></entry><entry key="3" value="嫣然"></entry></map></property><property name="dateSourse">//这是properties文件对应的写法<props><prop key="c1">"连接池1"</prop><prop key="c2">"连接池2"</prop></props></property><property name="address" ref="addressa"></property>//这就是对象当属性的时候用ref指向的形式</bean>

转载于:https://www.cnblogs.com/newzhangshun/p/10096619.html

Spring工厂常识相关推荐

  1. Spring 工厂的相关的方法

    名词解释:Spring 工厂创建的对象,叫做 bean 或者 组件 (componet): getBean:传入 id值 和 类名 获取对象,不需要强制类型转换. // 通过这种方式获得对象,就不需要 ...

  2. 【Spring 工厂】反转控制与依赖注入、Spring工厂创建复杂对象3种方式

    反转控制与依赖注入 反转控制 与 依赖注入 反转控制(IOC Inverse of Control) 依赖注入 (Dependency Injection - DI) Spring工厂创建复杂对象(3 ...

  3. 【Spring 工厂】注入详解 — Set注入(JDK内置类型,用户自定义类型)、构造注入(重载)

    Spring 注入(Injection) 什么是注入? 为什么要注入? 如何进行注入[开发步骤] Spring注入的原理分析(简易版) Set注入详解 JDK内置类型 String+8种基本类型 数组 ...

  4. 【Spring 工厂】工厂设计模式、第一个Spring程序细节分析、整合日志框架

    Spring 引言 什么是 Spring? 工厂设计模式 简单工厂的设计 通用工厂的设计 通用工厂的使用方式 第一个 Spring 程序 环境搭建 Spring 的核心API 程序开发 细节分析 Sp ...

  5. Java Spring 工厂类 BeanFactoryAware基本使用 亲测

    Java Spring 工厂类 BeanFactoryAware基本使用 1. BaseFactory.java 实现 Spring工厂接口 BeanFactoryAware 2. SearchFac ...

  6. Alian解读SpringBoot 2.6.0 源码(一):SpringApplication对象创建(Spring工厂加载机制)

    目录 一.背景 二.SpringApplication实例化 2.1.实例化方法入口 2.2.推断应用程序类型 2.3.Spring工厂加载机制 2.3.1.获取Spring工厂实例(重要) 2.3. ...

  7. 【Spring 工厂,西安富士通Java笔试题

    代理 模板 策略 什么是设计模式? ⼴义概念:面向对象设计中,解决特定问题的经典代码. 狭义概念:GOF4人帮定义的23种设计模式:工厂.适配器.装饰器.门面.代理.模板- 工厂设计模式 什么是工厂设 ...

  8. 使用Spring工厂模式管理多个类实现同一个接口

    最近小白在看 Spring IOC 和 AOP 源码时发现 Spring 中有很多类都实现了同一个接口,像下面这种 public interface AopProxy {Object getProxy ...

  9. 浅谈Spring IOC和DI及Spring工厂类

    浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...

最新文章

  1. HDU 1875 畅通工程再续
  2. Java ClassLoader setDefaultAssertionStatus()方法与示例
  3. 从Google Quick Draw涂鸦观察不同文化属性
  4. table中怎么设置两行间距
  5. Babel下的ES6兼容性与规范
  6. linux中mysql群集_阅读无群集可用性组中的Scale可用性组
  7. 百度发起机器阅读理解竞赛,提供中文数据集,获胜团队奖10万
  8. PHP反序列化漏洞(什么是反序列化漏洞及操作)
  9. asp.net后台操作javascript:confirm返回值
  10. matlab在二值图像上画曲线_数字图像处理:Image Printing Program Based on Halftoning
  11. 基于app_inventor的手机aap与单片机蓝牙互联教程
  12. 图扑数字孪生数据中心机房,助力产业绿色低碳转型
  13. BurpSuite系列(四)----Scanner模块(漏洞扫描)
  14. 上滑解锁流程 - 安卓R
  15. 计算机科学与技术职员考试,在职计算机科学与技术考试科目
  16. 计算机大纲中的应用,计算机的应用论文提纲模板范本 计算机的应用论文大纲怎么写...
  17. 【RFC5382 TCP 的 NAT 行为要求】(翻译)
  18. 【小程序开发之文章详情页面的设计】文章详情页面如何布局
  19. matlab循迹小车,Arduino智能小车系列教程6——循迹小车
  20. swoole基础之http-server

热门文章

  1. 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
  2. linux c实现函数回调,c语言实现linux抓包
  3. python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程
  4. python图像相似度识别_一个用SIFT特征比较图像相似度的python小程序
  5. java c++的区别_Java语言与C、C++之间的区别?
  6. 1h2g云服务器做网站,云服务器1h2g
  7. matlab 迭代 混沌与分形实验报告,实验四 函数的迭代混沌与分形.doc
  8. 【Linux】Linux computer文件夹下各种文件的作用
  9. 谷歌浏览器打不开设置等页面
  10. 动态网页项目(Dynamic Web Project)2.5和3.0版本的差异