上周末看了一章以前javaee轻量级的书spring部分,简单做了一些笔记

  1. // ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");//从类加载路径搜索配置文件
  2. ApplicationContext ac=new FileSystemXmlApplicationContext("src/bean.xml");//从相对路径或绝对路径搜索配置文件
  3.  
  4. 设值注入:setter方法,xmlbeanproperty
  5. 构造注入:构造器,xmlbeanconstructor-arg
  6.  
  7. bean.xml设置<property name="lyx" value="哈哈"></property>,通过setter,例如 public void setLyx(String name) 获取bean里面的值
  8.  
  9. 国际化:
  10. <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  11. <property name="basenames" > //messageSource 和basenames名字都不能变
  12. <list>
  13. <value>message</value> //messagemessage_zh_CN.propertiesmessage_en_US.properties
  14. </list>
  15. </property>
  16. </bean>
  17. 比如hello={0},通过String hi=ac.getMessage("hello", new String[]{"哈哈"},Locale.getDefault(Locale.Category.FORMAT));
  18.  
  19. ApplicationContextAware接口,Spring容器会在创建该Bean之后,
  20. 自动调用该BeansetApplicationContext()方法,调用该方法时,
  21. 会将容器本身作为参数传给该方法
  22.  
  23. applicationcontext事件机制:ApplicationListener监听ApplicationEvent事件类
  24.  
  25. spring的作用域有:
  26. singletonspringioc容器中,作用的bean只生成一个实例
  27. prototype:每次获取该prototype作用域bean都生成新的一个实例
  28. request:一次http对话,request作用域的bean只生成一个bean实例
  29. session:一次http对话,session作用域的bean只生成一个bean实例
  30. global session:每个全局的httpsession对应一个bean实例
  31.  
  32. 自动装配:autowiredefault-autowire
  33. no:必须通过ref元素定义
  34. byName:通过beanid进行setter该方法名字
  35. byType:包含不要Name,直接setter就可以了
  36. constructor:和byTpye相似,找不到与构造器参数类型匹配的bean就抛异常
  37. autodetect:根据bean内部决定使用constructorbyType
  38.  
  39. 嵌套Bean:防止某个bean被访问,把该bean放在有namebean <property name="" >内部
  40. <bean id="chinese" class="com.ij34.service.impl.Chinese" >
  41. <property name="dog" ><bean class="com.ij34.service.impl.DaHuang"/></property>
  42. </bean>
  43.  
  44. 注解配置Annotation
  45. @Configuration:修饰一个java
  46. @Bean:修饰一个方法,有返回值,构成了一个bean
  47. @Value:修饰一个Field,相当于为配置一个变量
  48. @Import:导入其他java配置类
  49. @Scope:修饰一个方法,指定对应的Bean的生命域
  50. @Lazy:修饰一个方法,指定对应的Bran是否需要好延迟初始化
  51. @DependsOn:初始化对应的Bean之前初始化指定的Bean
  52. @ImportResource:加载xml配置文件
  53.  
  54. spring创建bean的三种方式:调用构造器,调用静态工厂方法,调用实例工厂方法
  55.  
  56. 静态工厂方法:
  57. <bean id="dog" class="静态工厂类"
  58. factory-method="静态工厂类里面的方法">
  59. <!-- 配置静态工厂方法的参数 -->
  60. <constructor-arg value="一个参数,如果相同于静态工厂类里面的方法的参数,就返回该参数类的方法"/>
  61. <!-- 驱动Spring"我是狗"为参数来执行dogsetMsg()方法 -->
  62. <property name="msg" value="我是狗"/>
  63. </bean>
  64.  
  65. 实例工厂方法:
  66. <bean id="chinese" factory-bean="工厂Bean名字"
  67. factory-method="工厂Bean里面的方法名">
  68. <!-- 配置实例工厂方法的参数 -->
  69. <constructor-arg value="chin"/>
  70. </bean>
  71.  
  72. 抽象bean不能被实例化。抽象bean的价值在做父bean被继承,配置设置成abstract="true"
  73.  
  74. springbean继承与java继承区别:前者是对象与对象之间的关系,后者是类与类之间的关系;前者可以是不同类型,后者子类可看做一个特殊的父类;前者子bean不能作父bean使用,后者子类可以完全当作父类实例使用。
  75.  
  76. Springbean容器的生命周期
  77. 注入依赖关系之后的行为有:使用init-method属性、实现InitializingBean接口
  78. bean销毁之前的行为有:使用destroy-method属性,实现DisposableBean接口
  79.  
  80. lookup-method方法:bean定义为抽象类里面有抽象方法名与lookup-method的方法名相同。解决singletonprototype作用域不同步
  81.  
  82. 获取其他bean的属性值
  83. <bean id="son2" class="org.crazyit.app.service.Son">
  84. <property name="age">
  85. <!-- 使用嵌套Bean为调用setAge()方法指定参数值 -->
  86. <bean id="person.son.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
  87. </property></bean>
  88. 或者<bean id="son2" class="org.crazyit.app.service.Son">
  89. <property name="age">
  90. <util:property-path path="person.son.age"/>
  91. </property></bean>
  92.  
  93. 获取FieldtargetClasstargetFieldtargetObject)的值
  94. <bean id="theAge1"class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
  95. <!-- targetClass指定访问哪个目标类 -->
  96. <property name="targetClass" value="java.sql.Connection"/>
  97. <!-- targetField指定要访问的Field -->
  98. <property name="targetField" value="TRANSACTION_SERIALIZABLE"/>
  99. </bean>
  100. 简化配置<util:constant id="theAge1"static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
  101.  
  102. 获取方法的返回值MethodInvokingFactoryBean
  103.  
  104. xmlbean配置才用p:和c:和util:命名简化配置

  

spring笔记----看书笔记的更多相关文章

  1. 《大象UML》看书笔记2:

    <大象UML>看书笔记2 抽象角度:                                                        在为现实世界建模的时候,首先要搞清楚有多 ...

  2. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  3. 数据结构看书笔记(二)--算法(Algorithm)简介

    算法:是解决问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性:算法具有五个特性:输入.输出.有穷性.确定性.可行性 输入输出:算法具有零个或多个输入:至 ...

  4. 精通javascript(看书笔记)

    变量的类型检查 //检测类型 var str = "Hello World"; if (typeof str=="string") {//使用typeof来判断 ...

  5. UML看书笔记1:主体思想

    对象设计需要解决的三大问题:      1.把“现实世界”映射到“对象世界”      2.从“对象世界”描述“现实世界”      3.验证“对象世界”是否反映了“现实世界” 现实世界与我们的对象世 ...

  6. 《深入理解 JVM 虚拟机》 --- 看书笔记

    1.JVM 内存溢出 1.堆溢出:堆要不断的创建对象,如果避免了垃圾回收来清除这些对象,就会产生JVM内存溢出.一般手段是通过内存映像分析工具对Dump出来的堆转储快照进行分析,分清楚到底是内存泄露还 ...

  7. python早期看书笔记

  8. Spring源码阅读笔记

    前言 作为一个Java开发者,工作了几年后,越发觉力有点不从心了,技术的世界实在是太过于辽阔了,接触的东西越多,越感到前所未有的恐慌. 每天捣鼓这个捣鼓那个,结果回过头来,才发现这个也不通,那个也不精 ...

  9. Spring 源码学习笔记10——Spring AOP

    Spring 源码学习笔记10--Spring AOP 参考书籍<Spring技术内幕>Spring AOP的实现章节 书有点老,但是里面一些概念还是总结比较到位 源码基于Spring-a ...

随机推荐

  1. Postgre Sql获取最近一周、一月、一年日期函数

    使用Postgre Sql获取近一周.一年.一月等系统函数调用如下,使用方面相对于Ms Sql server 容易了许多. --当前时间 select now(); --current_timesta ...

  2. openlayers4 入门开发系列之风场图篇

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  3. Windows Server 2016-DNS客户端新增功能

    域名系统(DNS)是包含TCP / IP的行业标准协议套件之一,DNS客户端和DNS服务器一起为计算机和用户提供计算机名称到IP地址映射名称解析服务. 在Windows Server 2016中,DN ...

  4. 手机web——自适应网页设计(html/css控制)【转】

    一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name="v ...

  5. spring mvc多个请求的影响 和使用全局变量

    对于那些会以多线程运行的单例类(比如spring mvc中的controller,dao,service): 局部变量不会受多线程影响 成员变量会受到多线程影响 如果方法里有成员变量,只有读操作,不受 ...

  6. ios的跨站脚本限制

    概述 项目中碰到一个问题,就是在ios机上,用iframe内嵌的网页有时需要登录,有时候又不需要登录.查找了半天,终于发现是ios的跨站脚本限制导致的.这里就来介绍下跨站脚本限制,供以后开发时参考,相 ...

  7. 通过数据分析告诉你北京Python开发的现状

    相信各位同学多多少少在拉钩上投过简历,今天突然想了解一下北京Python开发的薪资水平.招聘要求.福利待遇以及公司地理位置.既然要分析那必然是现有数据样本.本文通过爬虫和数据分析为大家展示一下北京Py ...

  8. Flink从入门到放弃(入门篇1)-Flink是什么

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  9. Windows系统pip安装whl包

    1.确保PIP的存在 2.CMD命令进入C:\Python34\Scripts里面后再执行PIP命令安装pip install wheel     # D:   和cd  地址 3.把文件最好放在\S ...

  10. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...