当前位置: 首页 > news >正文

Spring工厂常识

  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");    //通过实际的引用名去找到对应的class System.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

相关文章:

  • PDF删除水印与添加水印方法介绍
  • 【刘文彬】【精解】EOS标准货币体系与源码实现分析
  • ThreadPoolExecutor
  • ASP.NET 的ClientIDMode属性
  • SQLServer之创建数据库快照
  • 集成ssm+shiro出现的 问题
  • shell脚本案例分享 - 业务系统日志自定义保留或删除需求
  • 比特币代码分析10 比特币中的工作量
  • Python正则表达式里的单行re.S和多行re.M模式
  • DOM: EVENT FLOW
  • 在windows10上利用Anaconda 搭建python3.6 + tensorflow环境
  • 修复win10无法双击打开txt文档.reg
  • JS的运行机制的总结!
  • 从SQL Server CloudDBA 看云数据库智能化
  • 夯实爪哇基础-数据类型,内存
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 〔开发系列〕一次关于小程序开发的深度总结
  • android 一些 utils
  • crontab执行失败的多种原因
  • JAVA之继承和多态
  • k个最大的数及变种小结
  • Promise面试题,控制异步流程
  • Python_OOP
  • React as a UI Runtime(五、列表)
  • Ruby 2.x 源代码分析:扩展 概述
  • Vue ES6 Jade Scss Webpack Gulp
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • Vue实战(四)登录/注册页的实现
  • webpack+react项目初体验——记录我的webpack环境配置
  • windows下使用nginx调试简介
  • Zsh 开发指南(第十四篇 文件读写)
  • 将 Measurements 和 Units 应用到物理学
  • 跳前端坑前,先看看这个!!
  • 微信小程序实战练习(仿五洲到家微信版)
  • 详解NodeJs流之一
  • 用jquery写贪吃蛇
  • 主流的CSS水平和垂直居中技术大全
  • 阿里云服务器购买完整流程
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​人工智能书单(数学基础篇)
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • $.proxy和$.extend
  • (003)SlickEdit Unity的补全
  • (1) caustics\
  • (1)STL算法之遍历容器
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (TOJ2804)Even? Odd?
  • (ZT)薛涌:谈贫说富
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战