Spring5框架入门基础

打印 上一主题 下一主题

主题 890|帖子 890|积分 2670

Spring5框架概述


  • Spring是轻量级的开源的JavaEE框架
  • Spring可以解决企业应用开发的复杂性
  • Spring有两个核心部分:IOC和AOP

    • IOC:控制反转,把创建对象过程交给Spring进行管理
    • AOP:面向切面,不修改源代码进行功能增强

  • Spring特点

    • 方便解耦,简化开发(IOC可以降低耦合性)
    • AOP编程支持
    • 方便程序测试(Spring对Junit4支持,可以通过注解方便的测试Spring程序)
    • 方便和其他框架进行整合
    • 方便进行事务操作
    • 降低API开发难度

  • Spring5系统结构
    ​<bean id="emp"  autowire="byName">
    <bean id="emp"  autowire="byType">
           
    </bean>
    <bean id="dept" ></bean>
    </bean>
    <bean id="dept" ></bean>



IOC

概念和原理

什么是IOC


  • 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
  • 使用IOC目的:为了降低耦合度
IOC底层原理

xml解析工厂模式反射

  • 原始方式与工厂模式的对比
    ​<bean id="emp"  autowire="byName">
    <bean id="emp"  autowire="byType">
           
    </bean>
    <bean id="dept" ></bean>
    </bean>
    <bean id="dept" ></bean>
  • 画图讲解IOC底层原理
    ​<bean id="emp"  autowire="byName">
    <bean id="emp"  autowire="byType">
           
    </bean>
    <bean id="dept" ></bean>
    </bean>
    <bean id="dept" ></bean>

IOC之BeanFactory接口


  • IOC思想基于IOC容器完成,IOC底层就是对象工厂
  • Spring提供IOC容器实现两种方式:(两个接口)

    • BeanFactory:IOC容器基本实现,是Spring内部的使用接口不提供开发人员进行使用
      加载配置文件时不会创建对象,在获取对象(使用)才去创建对象

    • ApplicationContextBeanFactory接口的子接口,提供更多更强大的功能,一般由开发人人员进行调用
      加载配置文件时会把在配置文件对象进行创建


  • ApplicationContext接口有实现类
    ​<bean id="emp"  autowire="byName">
    <bean id="emp"  autowire="byType">
           
    </bean>
    <bean id="dept" ></bean>
    </bean>
    <bean id="dept" ></bean>

    • FileSystemXmlApplicationContext
      configLocation:要写上配置文件在系统盘(某个盘)里的路径
    • ClassPathXmlApplicationContext
      configLocation:要写上类路径


IOC操作Bean管理

概念


  • 什么是Bean管理
    Bean管理指的是两个操作:Spring创建对象和Spring注入属性
  • Bean管理操作的方式:

    • 基于xml配置文件方式实现
    • 基于注释方式实现

基于xml方式


  • 创建对象
    1. [/code][list=1]
    2. [*]在Spring配置文件中,使用bean标签,[b]标签里面添加对应属性,就可以实现对象创建[/b]
    3. [*]bean标签常用的属性
    4. [list]
    5. [*]id属性:[b]唯一标识[/b]
    6. [*]class属性:类全路径(包类路径)
    7. [/list]
    8. [*]创建对象时候,[b]默认执行无参构造方法[/b]
    9. [/list]
    10. [*][b]注入属性[/b]
    11. [list]
    12. [*][b]DI:依赖注入(Dependency
    13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    14. </bean>Injection),就是注入属性[/b]
    15. [indent]DI是一种设计模式,用于管理对象之间的依赖关系,它将创建和管理对象的责任转移给了第三方的容器或框架,从而降低了系统的耦合度。
    16. [/indent]
    17. [/list][list=1]
    18. [*]第一种注入方式:[b]使用set方法进行注入[/b]
    19. [list=1]
    20. [*][i]创建类,定义属性和对应的set方法[/i]
    21. [code]
    22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    23. </bean>/**
    24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    25. </bean>
    26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    27. </bean>
    28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    29. </bean>*
    30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    31. </bean>演示set方法注入属性
    32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    33. </bean>
    34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    35. </bean>
    36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    37. </bean>*/
    38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    39. </bean>
    40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    41. </bean>public
    42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    43. </bean>class
    44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    45. </bean>Book
    46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    47. </bean>{
    48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    49. </bean>
    50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    51. </bean>
    52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    53. </bean>
    54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    55. </bean>
    56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    57. </bean>
    58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    59. </bean>//创建属性
    60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    61. </bean>
    62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    63. </bean>
    64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    65. </bean>
    66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    67. </bean>
    68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    69. </bean>
    70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    71. </bean>private
    72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    73. </bean>String
    74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    75. </bean>bname;
    76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    77. </bean>
    78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    79. </bean>
    80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    81. </bean>
    82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    83. </bean>
    84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    85. </bean>
    86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    87. </bean>private
    88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    89. </bean>String
    90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    91. </bean>bauthor;
    92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    93. </bean>
    94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    95. </bean>
    96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    97. </bean>
    98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    99. </bean>
    100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    101. </bean>
    102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    103. </bean>
    104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    105. </bean>
    106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    107. </bean>//创建属性对应set方法
    108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    109. </bean>
    110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    111. </bean>
    112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    113. </bean>
    114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    115. </bean>
    116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    117. </bean>
    118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    119. </bean>public
    120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    121. </bean>void
    122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    123. </bean>setBauthor(String
    124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    125. </bean>bauthor)
    126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    127. </bean>{
    128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    129. </bean>
    130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    131. </bean>
    132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    133. </bean>
    134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    135. </bean>
    136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    137. </bean>
    138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    139. </bean>
    140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    141. </bean>
    142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    143. </bean>
    144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    145. </bean>
    146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    147. </bean>this.bauthor
    148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    149. </bean>=
    150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    151. </bean>bauthor;
    152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    153. </bean>
    154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    155. </bean>
    156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    157. </bean>
    158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    159. </bean>
    160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    161. </bean>
    162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    163. </bean>}
    164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    165. </bean>
    166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    167. </bean>
    168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    169. </bean>
    170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    171. </bean>
    172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    173. </bean>
    174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    175. </bean>public
    176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    177. </bean>void
    178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    179. </bean>setBname(String
    180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    181. </bean>bname)
    182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    183. </bean>{
    184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    185. </bean>
    186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    187. </bean>
    188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    189. </bean>
    190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    191. </bean>
    192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    193. </bean>
    194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    195. </bean>
    196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    197. </bean>
    198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    199. </bean>
    200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    201. </bean>
    202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    203. </bean>this.bname
    204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    205. </bean>=
    206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    207. </bean>bname;
    208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    209. </bean>
    210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    211. </bean>
    212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    213. </bean>
    214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    215. </bean>
    216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    217. </bean>
    218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    219. </bean>}
    220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    221. </bean>
    222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    223. </bean>}
    复制代码
  • 在Spring配置文件配置对象创建,配置属性注入
    1. <bean
    2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    3. </bean>id="book"
    4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    5. </bean>>
    6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    7. </bean>
    8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    9. </bean>
    10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    11. </bean>
    12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    13. </bean>
    14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    15. </bean>
    16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    17. </bean>
    18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    19. </bean>
    20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    21. </bean><property
    22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    23. </bean>name="bname"
    24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    25. </bean>value="易筋经"></property>
    26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    27. </bean>
    28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    29. </bean>
    30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    31. </bean>
    32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    33. </bean><property
    34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    35. </bean>name="bauthor"
    36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    37. </bean>value="达摩老祖"></property>
    38. </bean>
    复制代码

  • 第二种注入方式:使用有参构造进行注入

    • 创建类,定义属性,创建属性对应的有参构造方法
      1. /**
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>*使用有参数构造注入
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>*/
      6. public
      7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      8. </bean>class
      9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      10. </bean>Orders
      11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      12. </bean>{
      13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      14. </bean>
      15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      16. </bean>
      17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      18. </bean>
      19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      20. </bean>//属性
      21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      22. </bean>
      23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      24. </bean>
      25. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      26. </bean>
      27. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      28. </bean>private
      29. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      30. </bean>String
      31. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      32. </bean>oname;
      33. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      34. </bean>
      35. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      36. </bean>
      37. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      38. </bean>
      39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      40. </bean>private
      41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      42. </bean>String
      43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      44. </bean>address;
      45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      46. </bean>
      47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      48. </bean>
      49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      50. </bean>
      51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      52. </bean>//有参构造
      53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      54. </bean>
      55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      56. </bean>
      57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      58. </bean>
      59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      60. </bean>public
      61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      62. </bean>Orders(String
      63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      64. </bean>oname,
      65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      66. </bean>String
      67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      68. </bean>address)
      69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      70. </bean>{
      71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      72. </bean>
      73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      74. </bean>
      75. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      76. </bean>
      77. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      78. </bean>
      79. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      80. </bean>
      81. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      82. </bean>
      83. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      84. </bean>
      85. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      86. </bean>this.oname
      87. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      88. </bean>=
      89. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      90. </bean>oname;
      91. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      92. </bean>
      93. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      94. </bean>
      95. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      96. </bean>
      97. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      98. </bean>
      99. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      100. </bean>
      101. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      102. </bean>
      103. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      104. </bean>
      105. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      106. </bean>this.address
      107. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      108. </bean>=
      109. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      110. </bean>address;
      111. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      112. </bean>
      113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      114. </bean>
      115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      116. </bean>
      117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      118. </bean>}
      119. }
      复制代码
    • 在spring配置文件中进行配置
      1. <bean
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>id="book"
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>>
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean><property
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>name="bname"
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>value="易筋经"></property>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean><property
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>name="bauthor"
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>value="达摩老祖"></property>
      38. </bean>
      39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      40. </bean>
      41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      42. </bean>
      43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      44. </bean>
      45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      46. </bean>
      复制代码

  • p名称空间注入(了解)
    使用p名称空间注入,可以简化基于xml配置方式

    • 添加p名称空间在配置文件中
      1. [/code]
      2. [*]进行属性注入,在bean标签里面进行操作
      3. [code]
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>
      复制代码


    xml注入其他类型属性


    • 字面量

      • null值
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>
        复制代码
      • 属性值包含特殊符号
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>>]]>
        复制代码

    • 注入属性——外部bean

      • 创建两个类service类和dao类
        1. package
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>com.atguigu.spring5.dao;public
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>interface
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>UserDao{<bean id="emp"  autowire="byName">
        8. <bean id="emp"  autowire="byType">
        9.        
        10. </bean>
        11. <bean id="dept" ></bean>
        12. </bean>
        13. <bean id="dept" ></bean>public
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>void
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>update();}
        复制代码
        1. package
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>com.atguigu.spring5.dao;public
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>class
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>UserDaoImpl
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>implements
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>UserDao{
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>@Override
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>public
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>void
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>update(){
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>System.out.println("dao
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>update...........");
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>}}
        复制代码
      • 在service调用dao里面的方法
        1. package
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>com.atguigu.spring5.service;public
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>class
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>UserService
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>//创建UserDao类型属性,生成set方法
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>private
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>UserDao
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>userDao;
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>public
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>void
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>setUserDao(UserDao
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>userDao)
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>{
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>this.userDao
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>=
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>userDao;
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>}
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>public
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>void
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>add(){
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>System.out.println("service
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>add.................");
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>userDao.update();
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>}}
        复制代码
      • 在spring配置文件中进行配置
        1. <bean id="emp"  autowire="byName">
        2. <bean id="emp"  autowire="byType">
        3.        
        4. </bean>
        5. <bean id="dept" ></bean>
        6. </bean>
        7. <bean id="dept" ></bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        复制代码

    • 注入属性——内部bean

      • 一对多关系
      比如:部门和员工,一个部门有多个员工,一个员工属于一个部门。

      • 在实体类之间表示一对多关系:员工使用对象类型属性进行表示所属部门
        1. //部门类public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>static
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>Dept{
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>private
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>String
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>dname;
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>public
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>void
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>setDname(String
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>dname){
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>this.dname=dnamel
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>}}
        复制代码
        1. //员工类public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>static
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>Emp{
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>private
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>String
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>name;
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>private
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>String
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>gender;
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>private
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>Dept
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>dept;
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>//用对象表示员工所属的部门
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>public
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>void
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>setName(String
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>name){
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>this.name
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>=
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>name;
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>}
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>public
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>void
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>setGender(String
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>gender){
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>this.gender
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>=
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>gender;
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>}}
        复制代码
      • 在Spring配置文件
        1. <bean
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>id="book"
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>>
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean><property
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>name="bname"
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>value="易筋经"></property>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean><property
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>name="bauthor"
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>value="达摩老祖"></property>
        38. </bean><bean
        39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        40. </bean>id="book"
        41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        42. </bean>>
        43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        44. </bean>
        45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        46. </bean>
        47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        48. </bean>
        49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        50. </bean>
        51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        52. </bean>
        53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        54. </bean>
        55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        56. </bean>
        57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        58. </bean><property
        59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        60. </bean>name="bname"
        61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        62. </bean>value="易筋经"></property>
        63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        64. </bean>
        65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        66. </bean>
        67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        68. </bean>
        69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        70. </bean><property
        71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        72. </bean>name="bauthor"
        73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        74. </bean>value="达摩老祖"></property>
        75. </bean><bean
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>id="book"
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean><property
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>name="bname"
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>value="易筋经"></property>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean><property
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>name="bauthor"
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>value="达摩老祖"></property>
        112. </bean><bean
        113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        114. </bean>id="book"
        115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        116. </bean>>
        117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        118. </bean>
        119. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        120. </bean>
        121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        122. </bean>
        123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        124. </bean>
        125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        126. </bean>
        127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        128. </bean>
        129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        130. </bean>
        131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        132. </bean><property
        133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        134. </bean>name="bname"
        135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        136. </bean>value="易筋经"></property>
        137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        138. </bean>
        139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        140. </bean>
        141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        142. </bean>
        143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        144. </bean><property
        145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        146. </bean>name="bauthor"
        147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        148. </bean>value="达摩老祖"></property>
        149. </bean>
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        复制代码

    • 注入属性——级联赋值

      • 第一种写法
        1. <bean
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>id="book"
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>>
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean><property
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>name="bname"
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>value="易筋经"></property>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean><property
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>name="bauthor"
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>value="达摩老祖"></property>
        38. </bean>
        39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        40. </bean>
        41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        42. </bean>
        43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        44. </bean>
        45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        46. </bean>
        47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        48. </bean>
        49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        50. </bean>
        51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        52. </bean>
        53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        54. </bean>
        55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        56. </bean>
        57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        58. </bean>
        59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        60. </bean>
        复制代码
      • 第二种写法
        1. //使用对象形式表示员工属于某一个部门private
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>Dept
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>dept;//生成dept的get方法public
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>Dept
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>getDept(){
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>return
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>dept;}public
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>void
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>setDept(Dept
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>dept){
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>this.dept
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>=
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>dept;}
        复制代码
        1. <bean
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>id="book"
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>>
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean><property
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>name="bname"
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>value="易筋经"></property>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean><property
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>name="bauthor"
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>value="达摩老祖"></property>
        38. </bean><bean
        39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        40. </bean>id="book"
        41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        42. </bean>>
        43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        44. </bean>
        45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        46. </bean>
        47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        48. </bean>
        49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        50. </bean>
        51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        52. </bean>
        53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        54. </bean>
        55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        56. </bean>
        57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        58. </bean><property
        59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        60. </bean>name="bname"
        61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        62. </bean>value="易筋经"></property>
        63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        64. </bean>
        65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        66. </bean>
        67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        68. </bean>
        69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        70. </bean><property
        71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        72. </bean>name="bauthor"
        73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        74. </bean>value="达摩老祖"></property>
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        复制代码

    xml注入集合属性


    • 注入数组类型属性
    • 注入List集合类型属性
    • 注入Map集合类型属性
    • 注入Set集合类型属性
    第一步,创建类,定义数组、List、Map、Set类型属性,生成对应set方法
    1. public
    2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    3. </bean>class
    4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    5. </bean>Stu
    6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    7. </bean>{
    8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    9. </bean>
    10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    11. </bean>
    12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    13. </bean>
    14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    15. </bean>//1
    16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    17. </bean>数组类型的属性
    18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    19. </bean>
    20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    21. </bean>
    22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    23. </bean>
    24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    25. </bean>private
    26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    27. </bean>String[]
    28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    29. </bean>courses;
    30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    31. </bean>
    32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    33. </bean>
    34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    35. </bean>
    36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    37. </bean>//2
    38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    39. </bean>List集合类型
    40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    41. </bean>
    42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    43. </bean>
    44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    45. </bean>
    46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    47. </bean>private
    48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    49. </bean>List
    50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    51. </bean>list;<bean id="emp"  autowire="byName">
    52. <bean id="emp"  autowire="byType">
    53.        
    54. </bean>
    55. <bean id="dept" ></bean>
    56. </bean>
    57. <bean id="dept" ></bean>//3
    58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    59. </bean>Map集合类型
    60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    61. </bean>
    62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    63. </bean>
    64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    65. </bean>
    66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    67. </bean>private
    68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    69. </bean>Map
    70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    71. </bean>maps;<bean id="emp"  autowire="byName">
    72. <bean id="emp"  autowire="byType">
    73.        
    74. </bean>
    75. <bean id="dept" ></bean>
    76. </bean>
    77. <bean id="dept" ></bean>//4
    78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    79. </bean>set集合类型
    80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    81. </bean>
    82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    83. </bean>
    84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    85. </bean>
    86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    87. </bean>private
    88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    89. </bean>Set
    90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    91. </bean>sets;
    92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    93. </bean>
    94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    95. </bean>
    96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    97. </bean>
    98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    99. </bean>
    100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    101. </bean>
    102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    103. </bean>
    104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    105. </bean>
    106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    107. </bean>public
    108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    109. </bean>void
    110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    111. </bean>setCourses(String[]
    112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    113. </bean>courses)
    114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    115. </bean>{
    116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    117. </bean>
    118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    119. </bean>
    120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    121. </bean>
    122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    123. </bean>
    124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    125. </bean>
    126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    127. </bean>
    128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    129. </bean>
    130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    131. </bean>this.courses
    132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    133. </bean>=
    134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    135. </bean>courses;
    136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    137. </bean>
    138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    139. </bean>
    140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    141. </bean>
    142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    143. </bean>}
    144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    145. </bean>
    146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    147. </bean>
    148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    149. </bean>
    150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    151. </bean>public
    152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    153. </bean>void
    154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    155. </bean>setList(List
    156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    157. </bean>list)
    158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    159. </bean>{
    160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    161. </bean>
    162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    163. </bean>
    164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    165. </bean>
    166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    167. </bean>
    168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    169. </bean>
    170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    171. </bean>
    172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    173. </bean>
    174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    175. </bean>this.list
    176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    177. </bean>=
    178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    179. </bean>list;
    180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    181. </bean>
    182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    183. </bean>
    184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    185. </bean>
    186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    187. </bean>}
    188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    189. </bean>
    190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    191. </bean>
    192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    193. </bean>
    194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    195. </bean>public
    196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    197. </bean>void
    198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    199. </bean>setMaps(Map
    200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    201. </bean>maps)
    202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    203. </bean>{
    204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    205. </bean>
    206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    207. </bean>
    208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    209. </bean>
    210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    211. </bean>
    212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    213. </bean>
    214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    215. </bean>
    216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    217. </bean>
    218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    219. </bean>this.maps
    220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    221. </bean>=
    222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    223. </bean>maps;
    224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    225. </bean>
    226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    227. </bean>
    228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    229. </bean>
    230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    231. </bean>}
    232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    233. </bean>
    234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    235. </bean>
    236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    237. </bean>
    238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    239. </bean>public
    240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    241. </bean>void
    242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    243. </bean>setSets(Set
    244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    245. </bean>sets)
    246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    247. </bean>{
    248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    249. </bean>
    250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    251. </bean>
    252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    253. </bean>
    254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    255. </bean>
    256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    257. </bean>
    258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    259. </bean>
    260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    261. </bean>
    262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    263. </bean>this.sets
    264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    265. </bean>=
    266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    267. </bean>sets;
    268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    269. </bean>
    270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    271. </bean>
    272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    273. </bean>
    274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    275. </bean>}}
    复制代码
    第二步,在Spring配置文件进行配置
    1. <bean
    2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    3. </bean>id="book"
    4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    5. </bean>>
    6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    7. </bean>
    8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    9. </bean>
    10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    11. </bean>
    12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    13. </bean>
    14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    15. </bean>
    16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    17. </bean>
    18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    19. </bean>
    20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    21. </bean><property
    22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    23. </bean>name="bname"
    24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    25. </bean>value="易筋经"></property>
    26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    27. </bean>
    28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    29. </bean>
    30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    31. </bean>
    32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    33. </bean><property
    34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    35. </bean>name="bauthor"
    36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    37. </bean>value="达摩老祖"></property>
    38. </bean><bean
    39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    40. </bean>id="book"
    41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    42. </bean>>
    43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    44. </bean>
    45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    46. </bean>
    47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    48. </bean>
    49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    50. </bean>
    51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    52. </bean>
    53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    54. </bean>
    55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    56. </bean>
    57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    58. </bean><property
    59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    60. </bean>name="bname"
    61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    62. </bean>value="易筋经"></property>
    63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    64. </bean>
    65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    66. </bean>
    67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    68. </bean>
    69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    70. </bean><property
    71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    72. </bean>name="bauthor"
    73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    74. </bean>value="达摩老祖"></property>
    75. </bean>
    76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    77. </bean>
    78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    79. </bean>
    80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    81. </bean>
    82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    83. </bean>java课程<bean
    84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    85. </bean>id="book"
    86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    87. </bean>>
    88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    89. </bean>
    90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    91. </bean>
    92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    93. </bean>
    94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    95. </bean>
    96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    97. </bean>
    98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    99. </bean>
    100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    101. </bean>
    102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    103. </bean><property
    104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    105. </bean>name="bname"
    106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    107. </bean>value="易筋经"></property>
    108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    109. </bean>
    110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    111. </bean>
    112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    113. </bean>
    114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    115. </bean><property
    116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    117. </bean>name="bauthor"
    118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    119. </bean>value="达摩老祖"></property>
    120. </bean>数据库课程<bean
    121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    122. </bean>id="book"
    123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    124. </bean>>
    125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    126. </bean>
    127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    128. </bean>
    129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    130. </bean>
    131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    132. </bean>
    133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    134. </bean>
    135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    136. </bean>
    137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    138. </bean>
    139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    140. </bean><property
    141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    142. </bean>name="bname"
    143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    144. </bean>value="易筋经"></property>
    145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    146. </bean>
    147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    148. </bean>
    149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    150. </bean>
    151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    152. </bean><property
    153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    154. </bean>name="bauthor"
    155. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    156. </bean>value="达摩老祖"></property>
    157. </bean><bean
    158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    159. </bean>id="book"
    160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    161. </bean>>
    162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    163. </bean>
    164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    165. </bean>
    166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    167. </bean>
    168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    169. </bean>
    170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    171. </bean>
    172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    173. </bean>
    174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    175. </bean>
    176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    177. </bean><property
    178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    179. </bean>name="bname"
    180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    181. </bean>value="易筋经"></property>
    182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    183. </bean>
    184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    185. </bean>
    186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    187. </bean>
    188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    189. </bean><property
    190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    191. </bean>name="bauthor"
    192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    193. </bean>value="达摩老祖"></property>
    194. </bean><bean
    195. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    196. </bean>id="book"
    197. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    198. </bean>>
    199. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    200. </bean>
    201. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    202. </bean>
    203. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    204. </bean>
    205. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    206. </bean>
    207. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    208. </bean>
    209. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    210. </bean>
    211. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    212. </bean>
    213. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    214. </bean><property
    215. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    216. </bean>name="bname"
    217. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    218. </bean>value="易筋经"></property>
    219. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    220. </bean>
    221. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    222. </bean>
    223. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    224. </bean>
    225. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    226. </bean><property
    227. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    228. </bean>name="bauthor"
    229. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    230. </bean>value="达摩老祖"></property>
    231. </bean>
    232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    233. </bean>
    234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    235. </bean>
    236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    237. </bean>
    238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    239. </bean>张三<bean
    240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    241. </bean>id="book"
    242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    243. </bean>>
    244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    245. </bean>
    246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    247. </bean>
    248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    249. </bean>
    250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    251. </bean>
    252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    253. </bean>
    254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    255. </bean>
    256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    257. </bean>
    258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    259. </bean><property
    260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    261. </bean>name="bname"
    262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    263. </bean>value="易筋经"></property>
    264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    265. </bean>
    266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    267. </bean>
    268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    269. </bean>
    270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    271. </bean><property
    272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    273. </bean>name="bauthor"
    274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    275. </bean>value="达摩老祖"></property>
    276. </bean>李四<bean
    277. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    278. </bean>id="book"
    279. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    280. </bean>>
    281. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    282. </bean>
    283. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    284. </bean>
    285. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    286. </bean>
    287. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    288. </bean>
    289. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    290. </bean>
    291. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    292. </bean>
    293. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    294. </bean>
    295. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    296. </bean><property
    297. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    298. </bean>name="bname"
    299. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    300. </bean>value="易筋经"></property>
    301. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    302. </bean>
    303. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    304. </bean>
    305. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    306. </bean>
    307. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    308. </bean><property
    309. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    310. </bean>name="bauthor"
    311. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    312. </bean>value="达摩老祖"></property>
    313. </bean><bean
    314. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    315. </bean>id="book"
    316. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    317. </bean>>
    318. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    319. </bean>
    320. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    321. </bean>
    322. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    323. </bean>
    324. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    325. </bean>
    326. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    327. </bean>
    328. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    329. </bean>
    330. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    331. </bean>
    332. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    333. </bean><property
    334. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    335. </bean>name="bname"
    336. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    337. </bean>value="易筋经"></property>
    338. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    339. </bean>
    340. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    341. </bean>
    342. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    343. </bean>
    344. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    345. </bean><property
    346. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    347. </bean>name="bauthor"
    348. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    349. </bean>value="达摩老祖"></property>
    350. </bean><bean
    351. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    352. </bean>id="book"
    353. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    354. </bean>>
    355. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    356. </bean>
    357. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    358. </bean>
    359. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    360. </bean>
    361. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    362. </bean>
    363. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    364. </bean>
    365. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    366. </bean>
    367. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    368. </bean>
    369. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    370. </bean><property
    371. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    372. </bean>name="bname"
    373. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    374. </bean>value="易筋经"></property>
    375. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    376. </bean>
    377. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    378. </bean>
    379. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    380. </bean>
    381. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    382. </bean><property
    383. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    384. </bean>name="bauthor"
    385. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    386. </bean>value="达摩老祖"></property>
    387. </bean><bean
    388. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    389. </bean>id="book"
    390. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    391. </bean>>
    392. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    393. </bean>
    394. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    395. </bean>
    396. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    397. </bean>
    398. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    399. </bean>
    400. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    401. </bean>
    402. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    403. </bean>
    404. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    405. </bean>
    406. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    407. </bean><property
    408. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    409. </bean>name="bname"
    410. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    411. </bean>value="易筋经"></property>
    412. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    413. </bean>
    414. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    415. </bean>
    416. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    417. </bean>
    418. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    419. </bean><property
    420. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    421. </bean>name="bauthor"
    422. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    423. </bean>value="达摩老祖"></property>
    424. </bean><bean
    425. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    426. </bean>id="book"
    427. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    428. </bean>>
    429. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    430. </bean>
    431. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    432. </bean>
    433. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    434. </bean>
    435. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    436. </bean>
    437. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    438. </bean>
    439. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    440. </bean>
    441. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    442. </bean>
    443. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    444. </bean><property
    445. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    446. </bean>name="bname"
    447. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    448. </bean>value="易筋经"></property>
    449. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    450. </bean>
    451. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    452. </bean>
    453. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    454. </bean>
    455. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    456. </bean><property
    457. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    458. </bean>name="bauthor"
    459. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    460. </bean>value="达摩老祖"></property>
    461. </bean><bean
    462. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    463. </bean>id="book"
    464. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    465. </bean>>
    466. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    467. </bean>
    468. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    469. </bean>
    470. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    471. </bean>
    472. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    473. </bean>
    474. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    475. </bean>
    476. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    477. </bean>
    478. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    479. </bean>
    480. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    481. </bean><property
    482. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    483. </bean>name="bname"
    484. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    485. </bean>value="易筋经"></property>
    486. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    487. </bean>
    488. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    489. </bean>
    490. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    491. </bean>
    492. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    493. </bean><property
    494. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    495. </bean>name="bauthor"
    496. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    497. </bean>value="达摩老祖"></property>
    498. </bean><bean
    499. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    500. </bean>id="book"
    501. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    502. </bean>>
    503. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    504. </bean>
    505. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    506. </bean>
    507. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    508. </bean>
    509. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    510. </bean>
    511. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    512. </bean>
    513. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    514. </bean>
    515. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    516. </bean>
    517. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    518. </bean><property
    519. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    520. </bean>name="bname"
    521. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    522. </bean>value="易筋经"></property>
    523. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    524. </bean>
    525. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    526. </bean>
    527. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    528. </bean>
    529. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    530. </bean><property
    531. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    532. </bean>name="bauthor"
    533. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    534. </bean>value="达摩老祖"></property>
    535. </bean>
    536. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    537. </bean>
    538. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    539. </bean>
    540. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    541. </bean>
    542. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    543. </bean>
    544. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    545. </bean>
    546. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    547. </bean>
    548. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    549. </bean>
    550. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    551. </bean>MySQL<bean
    552. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    553. </bean>id="book"
    554. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    555. </bean>>
    556. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    557. </bean>
    558. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    559. </bean>
    560. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    561. </bean>
    562. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    563. </bean>
    564. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    565. </bean>
    566. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    567. </bean>
    568. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    569. </bean>
    570. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    571. </bean><property
    572. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    573. </bean>name="bname"
    574. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    575. </bean>value="易筋经"></property>
    576. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    577. </bean>
    578. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    579. </bean>
    580. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    581. </bean>
    582. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    583. </bean><property
    584. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    585. </bean>name="bauthor"
    586. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    587. </bean>value="达摩老祖"></property>
    588. </bean>redis<bean
    589. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    590. </bean>id="book"
    591. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    592. </bean>>
    593. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    594. </bean>
    595. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    596. </bean>
    597. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    598. </bean>
    599. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    600. </bean>
    601. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    602. </bean>
    603. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    604. </bean>
    605. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    606. </bean>
    607. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    608. </bean><property
    609. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    610. </bean>name="bname"
    611. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    612. </bean>value="易筋经"></property>
    613. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    614. </bean>
    615. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    616. </bean>
    617. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    618. </bean>
    619. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    620. </bean><property
    621. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    622. </bean>name="bauthor"
    623. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    624. </bean>value="达摩老祖"></property>
    625. </bean>
    复制代码

    • 在集合里面设置对象类型值
      1. <bean
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>id="book"
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>>
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean><property
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>name="bname"
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>value="易筋经"></property>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean><property
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>name="bauthor"
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>value="达摩老祖"></property>
      38. </bean><bean
      39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      40. </bean>id="book"
      41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      42. </bean>>
      43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      44. </bean>
      45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      46. </bean>
      47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      48. </bean>
      49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      50. </bean>
      51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      52. </bean>
      53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      54. </bean>
      55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      56. </bean>
      57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      58. </bean><property
      59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      60. </bean>name="bname"
      61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      62. </bean>value="易筋经"></property>
      63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      64. </bean>
      65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      66. </bean>
      67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      68. </bean>
      69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      70. </bean><property
      71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      72. </bean>name="bauthor"
      73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      74. </bean>value="达摩老祖"></property>
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      复制代码
    • 把集合注入部分提取出来

      • 在Spring配置文件中引入名称空间util
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>
        复制代码
      • 使用util标签完成list集合注入提取
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>易筋经
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>九阳神功
        17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        18. </bean>
        19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        20. </bean>
        21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        22. </bean>
        23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        24. </bean>九阴真经
        25. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        26. </bean>
        27. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        28. </bean>
        29. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        30. </bean>
        31. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        32. </bean>
        复制代码

    FactoryBean


    • Spring有两种类型bean,一种普通bean,另一种工厂bean(FactoryBean)
    • 普通bean:在配置文件中定义bean类型就是返回类型
    • 工厂bean:在配置文件中定义bean类型可以和返回类型不一样
    第一步,创建类,让这个类作为工厂bean,实现接口FactoryBean
    第二步,实现接口里面的方法,在实现的方法中定义返回的bean类型
    1. public
    2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    3. </bean>class
    4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    5. </bean>MyBean
    6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    7. </bean>implements
    8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    9. </bean>FactoryBean
    10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    11. </bean>{
    12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    13. </bean>
    14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    15. </bean>
    16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    17. </bean>
    18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    19. </bean>//定义返回bean
    20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    21. </bean>
    22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    23. </bean>
    24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    25. </bean>
    26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    27. </bean>@Override
    28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    29. </bean>
    30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    31. </bean>
    32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    33. </bean>
    34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    35. </bean>public
    36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    37. </bean>Course
    38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    39. </bean>getObject()
    40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    41. </bean>throws
    42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    43. </bean>Exception
    44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    45. </bean>{
    46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    47. </bean>
    48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    49. </bean>
    50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    51. </bean>
    52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    53. </bean>
    54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    55. </bean>
    56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    57. </bean>
    58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    59. </bean>
    60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    61. </bean>Course
    62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    63. </bean>course
    64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    65. </bean>=
    66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    67. </bean>new
    68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    69. </bean>Course();
    70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    71. </bean>
    72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    73. </bean>
    74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    75. </bean>
    76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    77. </bean>
    78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    79. </bean>
    80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    81. </bean>
    82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    83. </bean>
    84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    85. </bean>course.setCname("abc");
    86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    87. </bean>
    88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    89. </bean>
    90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    91. </bean>
    92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    93. </bean>
    94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    95. </bean>
    96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    97. </bean>
    98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    99. </bean>
    100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    101. </bean>return
    102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    103. </bean>course;
    104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    105. </bean>
    106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    107. </bean>
    108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    109. </bean>
    110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    111. </bean>}
    112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    113. </bean>
    114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    115. </bean>
    116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    117. </bean>
    118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    119. </bean>@Override
    120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    121. </bean>
    122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    123. </bean>
    124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    125. </bean>
    126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    127. </bean>public
    128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    129. </bean>Class
    130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    131. </bean>getObjectType()
    132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    133. </bean>{
    134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    135. </bean>
    136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    137. </bean>
    138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    139. </bean>
    140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    141. </bean>
    142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    143. </bean>
    144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    145. </bean>
    146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    147. </bean>
    148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    149. </bean>return
    150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    151. </bean>null;
    152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    153. </bean>
    154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    155. </bean>
    156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    157. </bean>
    158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    159. </bean>}
    160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    161. </bean>
    162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    163. </bean>
    164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    165. </bean>
    166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    167. </bean>@Override
    168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    169. </bean>
    170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    171. </bean>
    172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    173. </bean>
    174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    175. </bean>public
    176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    177. </bean>boolean
    178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    179. </bean>isSingleton()
    180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    181. </bean>{
    182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    183. </bean>
    184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    185. </bean>
    186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    187. </bean>
    188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    189. </bean>
    190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    191. </bean>
    192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    193. </bean>
    194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    195. </bean>
    196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    197. </bean>return
    198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    199. </bean>false;
    200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    201. </bean>
    202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    203. </bean>
    204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    205. </bean>
    206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    207. </bean>}}
    复制代码
    第三步,配置spring配置文件
    1. [/code]测试类:
    2. [code]public
    3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    4. </bean>void
    5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    6. </bean>test(){
    7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    8. </bean>
    9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    10. </bean>
    11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    12. </bean>
    13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    14. </bean>ApplicationContext
    15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    16. </bean>context
    17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    18. </bean>=
    19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    20. </bean>new
    21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    22. </bean>ClassPathXmlApplicationContext("bean.xml");
    23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    24. </bean>
    25. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    26. </bean>
    27. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    28. </bean>
    29. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    30. </bean>Course
    31. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    32. </bean>course
    33. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    34. </bean>=
    35. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    36. </bean>context.getBean("mybean",
    37. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    38. </bean>Course.class);
    39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    40. </bean>
    41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    42. </bean>
    43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    44. </bean>
    45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
    46. </bean>System.out.println(course);}
    复制代码
    bean作用域


    • 在Spring里面,设置创建bean实例可以是单实例,也可以是多实例
    • 在Spring里面,默认情况下,bean是单实例对象
      1. @Testpublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>void
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>testCollection2(){
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>ApplicationContext
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>context=new
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>ClassPathXmlApplicationContext("bean2.xml");
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>Book
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>book
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>=context.getBean("book",
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>Book.class);
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>Book
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>book1
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>=context.getBean("book",
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>Book.class);
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>System.out.println(book);
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>//com.atguigu.sqpring5.collectiontype.Book@5d11346a
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>System.out.println(book1);
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>//com.atguigu.sqpring5.collectiontype.Book@5d11346a}
      复制代码
      以上例子的两个输出是相同的,说明bean默认是单实例对象。
    • 如何设置单实例or多实例

      • 在Spring配置文件bean标签里面有属性scope,用于设置单实例还是多实例
      • scope属性值

        • singleton:表示单实例对象(默认值)
        • prototype:表示多实例对象

      1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      2. </bean>
      3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      4. </bean>
      5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      6. </bean>
      7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      8. </bean>
      复制代码
      再次测试:
      1. @Testpublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>void
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>testCollection2(){
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>ApplicationContext
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>context=new
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>ClassPathXmlApplicationContext("bean2.xml");
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>Book
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>book
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>=context.getBean("book",
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>Book.class);
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>Book
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>book1
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>=context.getBean("book",
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>Book.class);
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>System.out.println(book);
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean> //com.atguigu.sqpring5.collectiontype.Book@5d11346a
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>System.out.println(book1);
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean> //com.atguigu.sqpring5.collectiontype.Book@7a36aefa}
      复制代码
      以上例子的两个输出不同,说明此时bean是多实例对象。



    • singleton和prototype区别

      • singleton表示单实例,prototype表示多实例
      • 设置scope值singleton时候,加载spring配置文件就会创建一个单实例对象
      • 设置scope值是prototype时候,不是在加载spring配置文件时候创建对象,在调用getBean方法时候创建多实例对象

    bean生命周期


    • 生命周期从对象创建到对象销毁的过程
    • bean生命周期

      • 通过构造器创建bean实例(无参构造
      • 为bean的属性设置值和对其他bean的引用(调用set方法
      • 调用bean的初始化的方法(需要进行配置初始化的方法)
      • bean可以使用了(对象获取到了
      • 当容器关闭的时候,调用销毁bean的方法(需要配置销毁的方法)

    • 演示bean生命周期
      1. public
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>class
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>Orders
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>{<bean id="emp"  autowire="byName">
      8. <bean id="emp"  autowire="byType">
      9.        
      10. </bean>
      11. <bean id="dept" ></bean>
      12. </bean>
      13. <bean id="dept" ></bean>//无参数构造
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>public
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>Orders()
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>{
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>System.out.println("第一步
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>执行无参构造创建bean实例");
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>}
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>//创建set方法设置属性的值和对其他bean的引用
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>private
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>String
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>oname;
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>public
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>void
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>setOname(String
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>oname)
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>{
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>this.oname
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>=
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>oname;
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>
      114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      115. </bean>
      116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      117. </bean>
      118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      119. </bean>
      120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      121. </bean>
      122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      123. </bean>System.out.println("第二步
      124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      125. </bean>调用set方法设置属性的值");
      126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      127. </bean>
      128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      129. </bean>
      130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      131. </bean>
      132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      133. </bean>}<bean id="emp"  autowire="byName">
      134. <bean id="emp"  autowire="byType">
      135.        
      136. </bean>
      137. <bean id="dept" ></bean>
      138. </bean>
      139. <bean id="dept" ></bean>//创建执行的初始化方法
      140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      141. </bean>
      142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      143. </bean>
      144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      145. </bean>
      146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      147. </bean>public
      148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      149. </bean>void
      150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      151. </bean>initMethod(){
      152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      153. </bean>
      154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      155. </bean>
      156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      157. </bean>
      158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      159. </bean>
      160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      161. </bean>
      162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      163. </bean>
      164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      165. </bean>
      166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      167. </bean>System.out.println("第三步
      168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      169. </bean>执行初始化方法");
      170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      171. </bean>
      172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      173. </bean>
      174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      175. </bean>
      176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      177. </bean>}
      178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      179. </bean>
      180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      181. </bean>
      182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      183. </bean>
      184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      185. </bean>//创建执行的销毁方法
      186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      187. </bean>
      188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      189. </bean>
      190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      191. </bean>
      192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      193. </bean>public
      194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      195. </bean>void
      196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      197. </bean>destroyMethod(){
      198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      199. </bean>
      200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      201. </bean>
      202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      203. </bean>
      204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      205. </bean>
      206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      207. </bean>
      208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      209. </bean>
      210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      211. </bean>
      212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      213. </bean>System.out.println("第五步
      214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      215. </bean>执行销毁方法");
      216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      217. </bean>
      218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      219. </bean>
      220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      221. </bean>
      222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      223. </bean>}}
      复制代码
      在Spring配置文件中使用init-method指定初始化方法,用destroy-method指定销毁方法
      1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      2. </bean>
      3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      4. </bean>
      5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      6. </bean>
      7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      8. </bean>
      复制代码
      测试:
      1. @Testpublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>void
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>testCollection4()
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>{//
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>ApplicationContext
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>context
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>=//<bean
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>id="book"
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean><property
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>name="bname"
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>value="易筋经"></property>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean><property
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>name="bauthor"
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>value="达摩老祖"></property>
      64. </bean>
      65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      66. </bean>
      67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      68. </bean>
      69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      70. </bean>
      71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      72. </bean>new
      73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      74. </bean>ClassPathXmlApplicationContext("bean4.xml");
      75. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      76. </bean>
      77. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      78. </bean>
      79. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      80. </bean>
      81. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      82. </bean>ClassPathXmlApplicationContext
      83. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      84. </bean>context
      85. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      86. </bean>=
      87. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      88. </bean>
      89. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      90. </bean>
      91. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      92. </bean>
      93. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      94. </bean>
      95. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      96. </bean>
      97. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      98. </bean>
      99. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      100. </bean>
      101. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      102. </bean>new
      103. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      104. </bean>ClassPathXmlApplicationContext("bean4.xml");
      105. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      106. </bean>
      107. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      108. </bean>
      109. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      110. </bean>
      111. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      112. </bean>Orders
      113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      114. </bean>orders
      115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      116. </bean>=
      117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      118. </bean>context.getBean("orders",
      119. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      120. </bean>Orders.class);
      121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      122. </bean>
      123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      124. </bean>
      125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      126. </bean>
      127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      128. </bean>System.out.println("第四步
      129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      130. </bean>获取创建bean实例对象");
      131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      132. </bean>
      133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      134. </bean>
      135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      136. </bean>
      137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      138. </bean>System.out.println(orders);
      139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      140. </bean>
      141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      142. </bean>
      143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      144. </bean>
      145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      146. </bean>//手动让bean实例销毁
      147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      148. </bean>
      149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      150. </bean>
      151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      152. </bean>
      153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      154. </bean>context.close();}
      复制代码
      输出:
      第一步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>执行无参构造创建bean实例
      第二步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>调用set方法设置属性的值
      第三步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>执行初始化方法
      第四步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>获取创建bean实例对象
      com.atguigu.spring5.bean.Order@192d3247
      第五步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>执行销毁方法

    • bean的后置处理器,bean生命周期有七步

      • 通过构造器创建bean实例(无参构造
      • 为bean的属性设置值和对其他bean的引用(调用set方法
      • bean实例传递到bean后置处理器的方法postProcessBeforeInitialization
      • 调用bean的初始化的方法(需要进行配置初始化的方法)
      • bean实例传递到bean后置处理器的方法postProcessAfterInitialization
      • bean可以使用了(对象获取到了
      • 当容器关闭的时候,调用销毁bean的方法(需要配置销毁的方法)

    • 演示添加后置处理器效果

      • 创建类,实现接口BeanPostProcessor,创建后置处理器
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>MyBeanPost
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>implements
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>BeanPostProcessor
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>{
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>@Override
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>public
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>Object
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>postProcessBeforeInitialization(Object
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>bean,
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>String
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>beanName)
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>throws
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>BeansException
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>{
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>System.out.println("在初始化之前执行的方法");
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>return
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>bean;
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>}
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>@Override
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>public
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>Object
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>postProcessAfterInitialization(Object
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>bean,
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>String
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>beanName)
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>throws
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>BeansException
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>{
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>System.out.println("在初始化之后执行的方法");
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>return
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>bean;
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>}}
        复制代码
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>
        复制代码
        测试:
        1. @Testpublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>testCollection4()
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{//
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>ApplicationContext
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>context
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>=//<bean
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>id="book"
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean><property
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>name="bname"
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>value="易筋经"></property>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean><property
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>name="bauthor"
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>value="达摩老祖"></property>
        64. </bean>
        65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        66. </bean>
        67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        68. </bean>
        69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        70. </bean>
        71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        72. </bean>new
        73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        74. </bean>ClassPathXmlApplicationContext("bean4.xml");
        75. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        76. </bean>
        77. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        78. </bean>
        79. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        80. </bean>
        81. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        82. </bean>ClassPathXmlApplicationContext
        83. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        84. </bean>context
        85. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        86. </bean>=
        87. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        88. </bean>
        89. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        90. </bean>
        91. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        92. </bean>
        93. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        94. </bean>
        95. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        96. </bean>
        97. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        98. </bean>
        99. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        100. </bean>
        101. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        102. </bean>new
        103. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        104. </bean>ClassPathXmlApplicationContext("bean4.xml");
        105. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        106. </bean>
        107. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        108. </bean>
        109. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        110. </bean>
        111. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        112. </bean>Orders
        113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        114. </bean>orders
        115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        116. </bean>=
        117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        118. </bean>context.getBean("orders",
        119. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        120. </bean>Orders.class);
        121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        122. </bean>
        123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        124. </bean>
        125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        126. </bean>
        127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        128. </bean>System.out.println("第四步
        129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        130. </bean>获取创建bean实例对象");
        131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        132. </bean>
        133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        134. </bean>
        135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        136. </bean>
        137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        138. </bean>System.out.println(orders);
        139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        140. </bean>
        141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        142. </bean>
        143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        144. </bean>
        145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        146. </bean>//手动让bean实例销毁
        147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        148. </bean>
        149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        150. </bean>
        151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        152. </bean>
        153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        154. </bean>context.close();}
        复制代码
        输出:
        第一步
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>执行无参构造创建bean实例
        第二步
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>调用set方法设置属性的值
        在初始化之前执行的方法
        第三步
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>执行初始化方法
        在初始化之后执行的方法
        第四步
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>获取创建bean实例对象
        com.atguigu.spring5.bean.Order@192d3247
        第五步
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>执行销毁方法


    xml自动装配


    • 自动装配根据指定的装配规则(属性名称或者属性类型),Spring自动将匹配的属性值注入
    • 实现自动装配:bean标签属性autowire,配置自动装配
      autowire属性常用两个值:
      byName根据属性名称注入,注入值bean的id值和类属性名称一样
      byType根据属性类型注入
    • 演示自动装配过程

      • 根据属性名称自动注入
        1. <bean id="emp"  autowire="byName">
        2. <bean id="emp"  autowire="byType">
        3.        
        4. </bean>
        5. <bean id="dept" ></bean>
        6. </bean>
        7. <bean id="dept" ></bean>
        复制代码
      • 根据属性类型自动注入
        1. <bean id="emp"  autowire="byName">
        2. <bean id="emp"  autowire="byType">
        3.        
        4. </bean>
        5. <bean id="dept" ></bean>
        6. </bean>
        7. <bean id="dept" ></bean>
        复制代码
      外部属性文件


      • 直接配置数据库信息

        • 配置德鲁伊连接池
        • 引入德鲁伊连接池依赖jar包(druid)
          1. <bean
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>id="book"
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>>
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean><property
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>name="bname"
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>value="易筋经"></property>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean><property
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>name="bauthor"
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>value="达摩老祖"></property>
          38. </bean>
          39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          40. </bean>
          41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          42. </bean>
          43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          44. </bean>
          45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          46. </bean>
          复制代码

      • 引入外部属性文件配置数据库连接池

        • 创建外部属性文件,properties格式文件,写数据库信息
        • 把外部properties属性文件引入到spring配置文件中

          • 引入context名称空间
            1. [/code]
            2. [*]在Spring配置文件使用标签引入外部属性文件
            3. [code]<bean
            4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            5. </bean>id="book"
            6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            7. </bean>>
            8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            9. </bean>
            10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            11. </bean>
            12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            13. </bean>
            14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            15. </bean>
            16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            17. </bean>
            18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            19. </bean>
            20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            21. </bean>
            22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            23. </bean><property
            24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            25. </bean>name="bname"
            26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            27. </bean>value="易筋经"></property>
            28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            29. </bean>
            30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            31. </bean>
            32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            33. </bean>
            34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            35. </bean><property
            36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            37. </bean>name="bauthor"
            38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            39. </bean>value="达摩老祖"></property>
            40. </bean>
            41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            42. </bean>
            43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            44. </bean>
            45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            46. </bean>
            47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
            48. </bean>
            复制代码



    基于注解方式


    • 什么是注解

      • 注解是代码特殊标记,格式注解名称(属性名称=属性值,属性名称=属性值)
      • 使用注解,注解作用在上面,方法上面,属性上面
      • 使用注解目的:简化xml配置

    • Spring针对Bean管理中创建对象提供注解

      • @Component
      • @Service
      • @Controller
      • @Repository
      以上四个注解功能是一样的,都可以用来创建bean实例

    • 基于注解方式实现对象创建

      • 引入依赖

      • 开启组件扫描
        1. [/code]
        2. [*]创建类,在类上面添加创建对象注解
        3. [code]//在注解里面value属性值可以省略不写//默认值是类名称,首字母小写//UserService
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>-->
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>userService@Component(value
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>=
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>"userService")
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>//public
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>class
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>UserService
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>{
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>public
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>void
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>add(){
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>System.out.println("service
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>add......");
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>}}
        复制代码
      • 开启组件扫描细节配置
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>
        复制代码
      • 基于注解方式实现属性注入

        • @AutoWired:根据属性类型自动装配
          第一步,把service和dao对象创建,在service和dao类添加创建对象注解
          第二步,在service注入dao对象在service类添加dao类型属性在属性上面使用注解
          1. @Servicepublic
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>class
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>UserService
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>{
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>//定义dao类型的属性
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>//不需要添加set方法
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>//添加注入属性注解
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>
          38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          39. </bean>@Autowired
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>
          46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          47. </bean>private
          48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          49. </bean>UserDao
          50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          51. </bean>userDao;
          52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          53. </bean>
          54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          55. </bean>
          56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          57. </bean>
          58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          59. </bean>public
          60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          61. </bean>void
          62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          63. </bean>add(){
          64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          65. </bean>
          66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          67. </bean>
          68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          69. </bean>
          70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          71. </bean>
          72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          73. </bean>
          74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          75. </bean>
          76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          77. </bean>
          78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          79. </bean>System.out.println("service
          80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          81. </bean>add......");
          82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          83. </bean>
          84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          85. </bean>
          86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          87. </bean>
          88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          89. </bean>
          90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          91. </bean>
          92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          93. </bean>
          94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          95. </bean>
          96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          97. </bean>userDao.add();
          98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          99. </bean>
          100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          101. </bean>
          102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          103. </bean>
          104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          105. </bean>}}
          复制代码
        • @Qualifier:根据属性名称注入
          这个@Qualifier注解的使用,和上面@Autowired一起使用
          1. //定义dao类型的属性//不需要添加set方法//添加注入属性注解@Autowired
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>//根据类型进行注入@Qualifier(value
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>=
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>"userDaoImpl1")
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>//根据名称注入private
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>UserDao
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>userDao;
          复制代码
        • @Resource:可以根据类型注入,可以根据名称注入
          1. //<bean id="emp"  autowire="byName">
          2. <bean id="emp"  autowire="byType">
          3.        
          4. </bean>
          5. <bean id="dept" ></bean>
          6. </bean>
          7. <bean id="dept" ></bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>@Resource
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>//根据类型进行注入<bean id="emp"  autowire="byName">
          16. <bean id="emp"  autowire="byType">
          17.        
          18. </bean>
          19. <bean id="dept" ></bean>
          20. </bean>
          21. <bean id="dept" ></bean>@Resource(name="userDaoImpl1")
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>//根据名称进行注入
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>private
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>UserDao
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>userDao;
          复制代码
        • @Value:注入普通类型属性
          1. @Value(value
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>=
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>"abc")private
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>String
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>name;
          复制代码

      • 完全注释开发

        • 创建配置类,代替xml配置文件
          1. @Configuration
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>//作为配置类,替代xml配置文件@ComponentScan(basePackages
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>=
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>"com.atguigu")public
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>class
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>SpringConfig
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>{}
          复制代码
        • 编写测试类
          1. @Testpublic
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>void
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>testService2(){
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>//加载配置类
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>ApplicationContext
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>context
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>=
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>new
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>AnnotationConfigApplicationContext(SpringConfig.class);
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>UserService
          38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          39. </bean>userService
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>=
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>context.getBean("userService",
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>UserService.class);
          46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          47. </bean>
          48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          49. </bean>
          50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          51. </bean>
          52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          53. </bean>System.out.println(userService);
          54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          55. </bean>
          56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          57. </bean>
          58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          59. </bean>
          60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          61. </bean>userService.add();}
          复制代码




    AOP

    概念

    什么是AOP?

    • 面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合性降低,提高程序的可重用性,同时提高了开发的效率。
    • 通俗描述:不通过修改源代码方式,在主干功能里面添加新功能
    • 使用登录例子说明AOP

    底层原理

    AOP底层使用动态代理

    • 有接口代理,使用JDK动态代理

      • 创建接口实现类代理对象,增强类的方法

    • 没有接口情况,使用CGLIB动态代理

      • 创建子类的代理对象,增强类的方法


    JDK动态代理


    • 使用JDK动态代理,使用Proxy类里面的方法创建代理对象
      Proxy类是属于java.lang包中的


      • 调用newProxyInstance方法
        static
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Object
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>newProxyInstance(ClassLoader
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>loader,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>类[]
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>interfaces,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>InvocationHandler
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>h)
        返回指定接口的代理类的实例,该接口将调用分派给指定的调用处理程序。
        参数:
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean><bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>第一个参数:类加载器
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean><bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>第二个参数:增强方法所在类,这个类实现的接口,支持多个接口
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean><bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>第三个参数:实现这个接口InvocationHandler,创建代理对象,写增强的部分

    • 编写JDK动态代理代码

      • 创建接口,定义方法
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>interface
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserDao
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>public
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>int
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>add(int
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>a,int
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>b);
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>public
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>String
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>update(String
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>id);}
        复制代码
      • 创建接口实现类,实现方法
      1. public
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>class
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>UserDaoImpl
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>implements
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>UserDao{
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>@Override
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>public
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>int
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>add(int
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>a,
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>int
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>b)
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>{
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>return
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>a+b;
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>}
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>@Override
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>public
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>String
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>update(String
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>id)
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>{
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>return
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>id;
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>}}
      复制代码

      • 使用Proxy类创建接口代理对象
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>JDKProxy
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>public
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>static
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>void
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>main(String[]
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>args)
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>{
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>//创建接口实现类代理对象
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>Class[]
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>interfaces={UserDao.class};//
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>interfaces,
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>new
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>InvocationHandler()
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>{//<bean
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>id="book"
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean><property
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>name="bname"
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>value="易筋经"></property>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean><property
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>name="bauthor"
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>value="达摩老祖"></property>
        120. </bean>@Override//<bean
        121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        122. </bean>id="book"
        123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        124. </bean>>
        125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        126. </bean>
        127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        128. </bean>
        129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        130. </bean>
        131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        132. </bean>
        133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        134. </bean>
        135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        136. </bean>
        137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        138. </bean>
        139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        140. </bean><property
        141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        142. </bean>name="bname"
        143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        144. </bean>value="易筋经"></property>
        145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        146. </bean>
        147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        148. </bean>
        149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        150. </bean>
        151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        152. </bean><property
        153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        154. </bean>name="bauthor"
        155. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        156. </bean>value="达摩老祖"></property>
        157. </bean>public
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>Object
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>invoke(Object
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>proxy,
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>Method
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>method,
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>Object[]
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>args)
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>throws
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>Throwable
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>{//<bean
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>id="book"
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>>
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>
        194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        195. </bean>
        196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        197. </bean><property
        198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        199. </bean>name="bname"
        200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        201. </bean>value="易筋经"></property>
        202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        203. </bean>
        204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        205. </bean>
        206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        207. </bean>
        208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        209. </bean><property
        210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        211. </bean>name="bauthor"
        212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        213. </bean>value="达摩老祖"></property>
        214. </bean>
        215. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        216. </bean>
        217. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        218. </bean>
        219. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        220. </bean>
        221. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        222. </bean>return
        223. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        224. </bean>null;//<bean
        225. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        226. </bean>id="book"
        227. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        228. </bean>>
        229. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        230. </bean>
        231. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        232. </bean>
        233. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        234. </bean>
        235. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        236. </bean>
        237. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        238. </bean>
        239. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        240. </bean>
        241. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        242. </bean>
        243. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        244. </bean><property
        245. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        246. </bean>name="bname"
        247. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        248. </bean>value="易筋经"></property>
        249. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        250. </bean>
        251. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        252. </bean>
        253. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        254. </bean>
        255. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        256. </bean><property
        257. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        258. </bean>name="bauthor"
        259. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        260. </bean>value="达摩老祖"></property>
        261. </bean>}//
        262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        263. </bean>
        264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        265. </bean>
        266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        267. </bean>
        268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        269. </bean>
        270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        271. </bean>
        272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        273. </bean>
        274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        275. </bean>
        276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        277. </bean>});
        278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        279. </bean>
        280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        281. </bean>
        282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        283. </bean>
        284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        285. </bean>
        286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        287. </bean>
        288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        289. </bean>
        290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        291. </bean>
        292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        293. </bean>UserDaoImpl
        294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        295. </bean>userDao=new
        296. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        297. </bean>UserDaoImpl();
        298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        299. </bean>
        300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        301. </bean>
        302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        303. </bean>
        304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        305. </bean>
        306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        307. </bean>
        308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        309. </bean>
        310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        311. </bean>
        312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        313. </bean>UserDao
        314. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        315. </bean>dao=(UserDao)Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),
        316. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        317. </bean>interfaces,
        318. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        319. </bean>new
        320. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        321. </bean>UserDaoProxy(userDao));
        322. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        323. </bean>
        324. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        325. </bean>
        326. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        327. </bean>
        328. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        329. </bean>
        330. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        331. </bean>
        332. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        333. </bean>
        334. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        335. </bean>
        336. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        337. </bean>int
        338. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        339. </bean>result
        340. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        341. </bean>=
        342. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        343. </bean>dao.add(1,
        344. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        345. </bean>2);
        346. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        347. </bean>
        348. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        349. </bean>
        350. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        351. </bean>
        352. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        353. </bean>
        354. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        355. </bean>
        356. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        357. </bean>
        358. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        359. </bean>
        360. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        361. </bean>System.out.println("result"+result);
        362. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        363. </bean>
        364. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        365. </bean>
        366. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        367. </bean>
        368. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        369. </bean>}}//创建代理对象代码class
        370. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        371. </bean>UserDaoProxy
        372. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        373. </bean>implements
        374. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        375. </bean>InvocationHandler{
        376. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        377. </bean>
        378. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        379. </bean>
        380. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        381. </bean>
        382. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        383. </bean>//1
        384. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        385. </bean>把创建的是谁的代理对象
        386. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        387. </bean>把谁传递过来
        388. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        389. </bean>
        390. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        391. </bean>
        392. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        393. </bean>
        394. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        395. </bean>//有参数构造器
        396. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        397. </bean>
        398. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        399. </bean>
        400. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        401. </bean>
        402. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        403. </bean>private
        404. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        405. </bean>Object
        406. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        407. </bean>obj;
        408. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        409. </bean>
        410. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        411. </bean>
        412. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        413. </bean>
        414. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        415. </bean>public
        416. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        417. </bean>UserDaoProxy(Object
        418. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        419. </bean>obj){
        420. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        421. </bean>
        422. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        423. </bean>
        424. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        425. </bean>
        426. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        427. </bean>
        428. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        429. </bean>
        430. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        431. </bean>
        432. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        433. </bean>
        434. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        435. </bean>this.obj=obj;
        436. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        437. </bean>
        438. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        439. </bean>
        440. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        441. </bean>
        442. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        443. </bean>}
        444. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        445. </bean>
        446. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        447. </bean>
        448. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        449. </bean>
        450. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        451. </bean>//增强的逻辑
        452. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        453. </bean>
        454. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        455. </bean>
        456. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        457. </bean>
        458. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        459. </bean>@Override
        460. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        461. </bean>
        462. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        463. </bean>
        464. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        465. </bean>
        466. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        467. </bean>public
        468. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        469. </bean>Object
        470. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        471. </bean>invoke(Object
        472. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        473. </bean>proxy,
        474. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        475. </bean>Method
        476. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        477. </bean>method,
        478. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        479. </bean>Object[]
        480. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        481. </bean>args)
        482. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        483. </bean>throws
        484. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        485. </bean>Throwable
        486. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        487. </bean>{
        488. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        489. </bean>
        490. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        491. </bean>
        492. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        493. </bean>
        494. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        495. </bean>
        496. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        497. </bean>
        498. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        499. </bean>
        500. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        501. </bean>
        502. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        503. </bean>//方法之前
        504. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        505. </bean>
        506. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        507. </bean>
        508. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        509. </bean>
        510. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        511. </bean>
        512. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        513. </bean>
        514. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        515. </bean>
        516. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        517. </bean>
        518. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        519. </bean>System.out.println("方法之前执行......"+method.getName()+"
        520. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        521. </bean>:传递的参数..."+
        522. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        523. </bean>Arrays.toString(args));
        524. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        525. </bean>
        526. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        527. </bean>
        528. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        529. </bean>
        530. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        531. </bean>
        532. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        533. </bean>
        534. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        535. </bean>
        536. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        537. </bean>
        538. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        539. </bean>//被增强的方法执行
        540. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        541. </bean>
        542. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        543. </bean>
        544. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        545. </bean>
        546. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        547. </bean>
        548. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        549. </bean>
        550. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        551. </bean>
        552. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        553. </bean>
        554. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        555. </bean>Object
        556. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        557. </bean>res=
        558. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        559. </bean>method.invoke(obj,args);
        560. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        561. </bean>
        562. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        563. </bean>
        564. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        565. </bean>
        566. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        567. </bean>
        568. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        569. </bean>
        570. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        571. </bean>
        572. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        573. </bean>
        574. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        575. </bean>//方法之后
        576. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        577. </bean>
        578. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        579. </bean>
        580. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        581. </bean>
        582. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        583. </bean>
        584. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        585. </bean>
        586. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        587. </bean>
        588. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        589. </bean>
        590. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        591. </bean>System.out.println("方法之后执行......"+obj);
        592. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        593. </bean>
        594. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        595. </bean>
        596. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        597. </bean>
        598. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        599. </bean>
        600. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        601. </bean>
        602. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        603. </bean>
        604. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        605. </bean>
        606. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        607. </bean>return
        608. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        609. </bean>res;
        610. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        611. </bean>
        612. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        613. </bean>
        614. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        615. </bean>
        616. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        617. </bean>}}
        复制代码


    术语


    • 连接点(Jointpoint):类里面哪些方法可以被增强,这些方法被称为连接点。(类中可以被增强的方法
    • 切入点(Pointcut)实际被真正增强的方法
    • 增强(Advice):指的是在目标对象的方法调用前、后或抛出异常时,通过动态代理技术在目标对象的方法周围插入拦截器的逻辑代码,从而实现对目标对象方法的增强和定制。
    • 通知(增强)实际增强的逻辑部分。通知定义了增强在何时被调用,并指定了增强的类型。
      通知有多种类型:

      • 前置通知
      • 后置通知
      • 返回增强
      • 环绕通知
      • 异常通知
      • 最终通知

    • 切面/方面(Aspect)把通知应用到切入点的过程(动作)

    AOP操作——准备工作


    • Spring框架一般基于AspectJ实现AOP操作

      • AspectJ不是Spring组成部分,独立AOP框架,一般把AspectJ和Spring框架一起使用,进行AOP操作

    • 基于AspectJ实现AOP操作

      • 基于xml配置文件实现
      • 基于注解方式实现(使用)

    • 在项目工程里面引入AOP相关依赖
    • 切入点表达式

      • 作用:知道对哪个类里面的哪个方法进行增强
      • 语法结构:execution([权限修饰符]
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>[返回类型]
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>[类全路径]
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>[方法名称]
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>[参数列表])
        举例1:
        对com.atguigu.dao.BookDao类里面的add进行增强:execution(*
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>com.atguigu.dao.BookDao.add(..))
        举例2:
        对com.atguigu.dao.BookDao类里面的所有方法进行增强:execution(*
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>com.atguigu.dao.BookDao.*(..))
        举例3:
        对com.atguigu.dao包里面所有类,类里面的所有方法进行增强:execution(*
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>com.atguigu.dao*.*(..))


      AOP操作——AspectJ注解


      • 创建类,在类里面定义方法
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>User
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>public
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>void
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>add(){
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>System.out.println("add..............");
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>}}
        复制代码
      • 创建增强类(编写增强逻辑)
        在增强类里面,创建方法,让不同方法代表不同通知类型
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserProxy
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>public
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>void
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>before(){
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>//前置通知
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>System.out.println("before.......");
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>}}
        复制代码
      • 进行通知的配置

        • 在Spring配置文件中,开启注解扫描
          1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          2. </bean>
          3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          4. </bean>
          5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          6. </bean>
          7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          8. </bean>
          9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          10. </bean>
          11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          12. </bean>
          13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          14. </bean>
          15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          16. </bean>
          复制代码
        • 使用注解创建User和UserProxy对象
          1. //被增强的类@Componentpublic
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>class
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>User
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>{}//增强的类@Componentpublic
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>class
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>UserProxy
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>{}
          复制代码
        • 在增强类上面添加注解@Aspect
          1. //增强的类@Component@Aspect
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>//生成代理对象public
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>class
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>UserProxy
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>{}
          复制代码
        • 在spring配置文件中开启生成代理对象
          1. [/code]
          2. [/list]
          3. [*][b]配置不同类型的通知[/b]
          4. 在增强类里面,[b]在作为通知方法上面添加通知类型注解[/b],使用[b]切入点表达式[/b]配置
          5. [code]//增强的类@Component@Aspect
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>//生成代理对象public
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>class
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>UserProxy
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>{
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>//前置通知
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>//@Before注解表示作为前置通知
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>@Before(value
          38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          39. </bean>=
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>"execution(*
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>com.atguigu.spring5.aopanno.User.add(..))")
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>
          46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          47. </bean>
          48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          49. </bean>
          50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          51. </bean>public
          52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          53. </bean>void
          54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          55. </bean>before(){
          56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          57. </bean>
          58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          59. </bean>
          60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          61. </bean>
          62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          63. </bean>
          64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          65. </bean>
          66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          67. </bean>
          68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          69. </bean>
          70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          71. </bean>System.out.println("before.......");
          72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          73. </bean>
          74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          75. </bean>
          76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          77. </bean>
          78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          79. </bean>}
          80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          81. </bean>
          82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          83. </bean>
          84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          85. </bean>
          86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          87. </bean>//后置通知(返回通知)
          88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          89. </bean>
          90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          91. </bean>
          92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          93. </bean>
          94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          95. </bean>@AfterReturning(value
          96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          97. </bean>=
          98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          99. </bean>"execution(*
          100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          101. </bean>com.atguigu.spring5.aopanno.User.add(..))")
          102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          103. </bean>
          104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          105. </bean>
          106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          107. </bean>
          108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          109. </bean>public
          110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          111. </bean>void
          112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          113. </bean>afterReturning(){
          114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          115. </bean>
          116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          117. </bean>
          118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          119. </bean>
          120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          121. </bean>
          122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          123. </bean>
          124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          125. </bean>
          126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          127. </bean>
          128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          129. </bean>System.out.println("afterReturning.....");
          130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          131. </bean>
          132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          133. </bean>
          134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          135. </bean>
          136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          137. </bean>}
          138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          139. </bean>
          140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          141. </bean>
          142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          143. </bean>
          144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          145. </bean>//最终通知
          146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          147. </bean>
          148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          149. </bean>
          150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          151. </bean>
          152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          153. </bean>@After(value
          154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          155. </bean>=
          156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          157. </bean>"execution(*
          158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          159. </bean>com.atguigu.spring5.aopanno.User.add(..))")
          160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          161. </bean>
          162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          163. </bean>
          164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          165. </bean>
          166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          167. </bean>public
          168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          169. </bean>void
          170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          171. </bean>after(){
          172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          173. </bean>
          174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          175. </bean>
          176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          177. </bean>
          178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          179. </bean>
          180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          181. </bean>
          182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          183. </bean>
          184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          185. </bean>
          186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          187. </bean>System.out.println("after.....");
          188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          189. </bean>
          190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          191. </bean>
          192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          193. </bean>
          194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          195. </bean>}
          196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          197. </bean>
          198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          199. </bean>
          200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          201. </bean>
          202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          203. </bean>//异常通知
          204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          205. </bean>
          206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          207. </bean>
          208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          209. </bean>
          210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          211. </bean>@AfterThrowing(value
          212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          213. </bean>=
          214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          215. </bean>"execution(*
          216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          217. </bean>com.atguigu.spring5.aopanno.User.add(..))")
          218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          219. </bean>
          220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          221. </bean>
          222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          223. </bean>
          224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          225. </bean>public
          226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          227. </bean>void
          228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          229. </bean>afterThrowing(){
          230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          231. </bean>
          232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          233. </bean>
          234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          235. </bean>
          236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          237. </bean>
          238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          239. </bean>
          240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          241. </bean>
          242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          243. </bean>
          244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          245. </bean>System.out.println("afterThrowing.....");
          246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          247. </bean>
          248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          249. </bean>
          250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          251. </bean>
          252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          253. </bean>}
          254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          255. </bean>
          256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          257. </bean>
          258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          259. </bean>
          260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          261. </bean>//环绕通知
          262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          263. </bean>
          264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          265. </bean>
          266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          267. </bean>
          268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          269. </bean>@Around(value
          270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          271. </bean>=
          272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          273. </bean>"execution(*
          274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          275. </bean>com.frx01.spring5.aopanno.User.add(..))")
          276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          277. </bean>
          278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          279. </bean>
          280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          281. </bean>
          282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          283. </bean>public
          284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          285. </bean>void
          286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          287. </bean>around(ProceedingJoinPoint
          288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          289. </bean>proceedingJoinPoint)
          290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          291. </bean>throws
          292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          293. </bean>Throwable{
          294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          295. </bean>
          296. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          297. </bean>
          298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          299. </bean>
          300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          301. </bean>
          302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          303. </bean>
          304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          305. </bean>
          306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          307. </bean>
          308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          309. </bean>System.out.println("环绕之前.......");
          310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          311. </bean>
          312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          313. </bean>
          314. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          315. </bean>
          316. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          317. </bean>
          318. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          319. </bean>
          320. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          321. </bean>
          322. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          323. </bean>
          324. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          325. </bean>//被增强的方法执行
          326. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          327. </bean>
          328. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          329. </bean>
          330. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          331. </bean>
          332. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          333. </bean>
          334. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          335. </bean>
          336. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          337. </bean>
          338. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          339. </bean>
          340. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          341. </bean>proceedingJoinPoint.proceed();
          342. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          343. </bean>
          344. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          345. </bean>
          346. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          347. </bean>
          348. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          349. </bean>
          350. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          351. </bean>
          352. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          353. </bean>
          354. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          355. </bean>
          356. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          357. </bean>System.out.println("环绕之后.......");
          358. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          359. </bean>
          360. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          361. </bean>
          362. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          363. </bean>
          364. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          365. </bean>}}
          复制代码
        • 相同切入点抽取
          1. //相同切入点抽取@Pointcut(value
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>="execution(*
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>com.atguigu.spring5.aopanno.User.add(..))")public
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>void
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>pointdemo(){}//前置通知//@Before注解表示作为前置通知@Before(value
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>=
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>"pointdemo()")
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>//可直接使用pointdemo作为valuepublic
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>void
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>before(){
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>System.out.println("before.......");}
          复制代码
        • 有多个增强类多同一个方法进行增强,设置增强类优先级
          在增强类上面添加注解@Order(数字类型值),数字类型值越小优先级越高
          1. @Component@Aspect@Order(1)public
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>class
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>PersonProxy
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>{}
          复制代码
        • 完全使用注解开发
          创建配置类,不需要创建xml配置文件
          1. @Configuration@ComponentScan(basePackages
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>=
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>{"com.atguigu"})@EnableAspectJAutoProxy(proxyTargetClass
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>=
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>true)public
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>class
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>ConfigAop
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>{}
          复制代码


      AOP操作——AspectJ配置文件


      • 创建两个类,增强类和被增强类,创建方法
      • 在Spring配置文件中创建两个类对象
        1. [/code]
        2. [*]在Spring配置文件中[i]配置切入点[/i]
        3. [code]<bean
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>id="book"
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean><property
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>name="bname"
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>value="易筋经"></property>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean><property
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>name="bauthor"
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>value="达摩老祖"></property>
        40. </bean><bean
        41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        42. </bean>id="book"
        43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        44. </bean>>
        45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        46. </bean>
        47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        48. </bean>
        49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        50. </bean>
        51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        52. </bean>
        53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        54. </bean>
        55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        56. </bean>
        57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        58. </bean>
        59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        60. </bean><property
        61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        62. </bean>name="bname"
        63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        64. </bean>value="易筋经"></property>
        65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        66. </bean>
        67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        68. </bean>
        69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        70. </bean>
        71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        72. </bean><property
        73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        74. </bean>name="bauthor"
        75. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        76. </bean>value="达摩老祖"></property>
        77. </bean><bean
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>id="book"
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean><property
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>name="bname"
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>value="易筋经"></property>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean><property
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>name="bauthor"
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>value="达摩老祖"></property>
        114. </bean>
        复制代码


      JdbcTemplate

      概念和准备


      • 什么是JdbcTemplate
        Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作
      • 准备工作

        • 创建数据库和表
          1. CREATE
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>DATABASE
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>user_dbCREATE
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>TABLE
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>t_book(<bean id="emp"  autowire="byName">
          10. <bean id="emp"  autowire="byType">
          11.        
          12. </bean>
          13. <bean id="dept" ></bean>
          14. </bean>
          15. <bean id="dept" ></bean>userId
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>BIGINT
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>PRIMARY
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>KEY,<bean id="emp"  autowire="byName">
          22. <bean id="emp"  autowire="byType">
          23.        
          24. </bean>
          25. <bean id="dept" ></bean>
          26. </bean>
          27. <bean id="dept" ></bean>username
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>VARCHAR(100)
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>NOT
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>NULL,<bean id="emp"  autowire="byName">
          34. <bean id="emp"  autowire="byType">
          35.        
          36. </bean>
          37. <bean id="dept" ></bean>
          38. </bean>
          39. <bean id="dept" ></bean>ustatus
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>VARCHAR(50)
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>NOT
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>NULL)
          复制代码
        • 引入相关的jar包
        • 在Spring配置文件中配置数据库的连接池
          1. <bean
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>id="book"
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>>
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean><property
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>name="bname"
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>value="易筋经"></property>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean><property
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>name="bauthor"
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>value="达摩老祖"></property>
          38. </bean>
          39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          40. </bean>
          41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          42. </bean>
          43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          44. </bean>
          45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          46. </bean>
          复制代码
        • 配置JdbcTemplate对象,注入DataSource
          1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          2. </bean>
          3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          4. </bean>
          5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          6. </bean>
          7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          8. </bean>
          9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          10. </bean>
          11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          12. </bean>
          13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          14. </bean>
          15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          16. </bean>
          复制代码
        • 创建service类,创建dao类,在dao注入jdbcTemplate对象
          配置文件:
          1. [/code]Service类:
          2. [code]@Servicepublic
          3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          4. </bean>class
          5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          6. </bean>BookService
          7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          8. </bean>{
          9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          10. </bean>
          11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          12. </bean>
          13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          14. </bean>
          15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          16. </bean>//注入dao
          17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          18. </bean>
          19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          20. </bean>
          21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          22. </bean>
          23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          24. </bean>@Autowired
          25. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          26. </bean>
          27. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          28. </bean>
          29. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          30. </bean>
          31. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          32. </bean>private
          33. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          34. </bean>BookDao
          35. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          36. </bean>bookDao;}
          复制代码
          Dao类:
          1. @Repositorypublic
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>class
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>BookDaoImpl
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>implements
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>BookDao{
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>//注入JdbcTemplate
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>@Autowired
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>private
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>JdbcTemplate
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>jdbcTemplate;}
          复制代码


      JdbcTemplate操作数据库

      添加


      • 对应数据库创建实体类
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>User
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>private
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>userId;
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>private
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>String
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>username;
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>private
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>String
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>ustatus;
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>public
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>String
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>getUserId()
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>{
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>return
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>userId;
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>}
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>public
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>String
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>getUsername()
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>{
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>return
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>username;
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>}
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>public
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>String
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>getUstatus()
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>{
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>return
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>ustatus;
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>}
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>public
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>void
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>setUserId(String
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>userId)
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>{
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>
        194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        195. </bean>this.userId
        196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        197. </bean>=
        198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        199. </bean>userId;
        200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        201. </bean>
        202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        203. </bean>
        204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        205. </bean>
        206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        207. </bean>}
        208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        209. </bean>
        210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        211. </bean>
        212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        213. </bean>
        214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        215. </bean>public
        216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        217. </bean>void
        218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        219. </bean>setUsername(String
        220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        221. </bean>username)
        222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        223. </bean>{
        224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        225. </bean>
        226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        227. </bean>
        228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        229. </bean>
        230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        231. </bean>
        232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        233. </bean>
        234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        235. </bean>
        236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        237. </bean>
        238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        239. </bean>this.username
        240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        241. </bean>=
        242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        243. </bean>username;
        244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        245. </bean>
        246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        247. </bean>
        248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        249. </bean>
        250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        251. </bean>}
        252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        253. </bean>
        254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        255. </bean>
        256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        257. </bean>
        258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        259. </bean>public
        260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        261. </bean>void
        262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        263. </bean>setUstatus(String
        264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        265. </bean>ustatus)
        266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        267. </bean>{
        268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        269. </bean>
        270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        271. </bean>
        272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        273. </bean>
        274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        275. </bean>
        276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        277. </bean>
        278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        279. </bean>
        280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        281. </bean>
        282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        283. </bean>this.ustatus
        284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        285. </bean>=
        286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        287. </bean>ustatus;
        288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        289. </bean>
        290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        291. </bean>
        292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        293. </bean>
        294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        295. </bean>}}
        复制代码
      • 编写Service和Dao

        • 在dao进行数据库添加操作
        • 调用JdbcTemplate对象里面update方法实现添加操作
          update(String
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>sql,
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Object...
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>args)
          参数:
          String
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>sql:sql语句
          Object...
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>args:可变参数,设置sql语句值

        1. @Repositorypublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>BookDaoImpl
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>implements
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>BookDao{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>//注入JdbcTemplate
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>@Autowired
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>private
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>JdbcTemplate
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>jdbcTemplate;
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>//添加方法
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>@Override
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>public
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>void
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>add(Book
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>book)
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>{
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>//1.创建sql语句
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>String
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>sql="insert
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>into
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>t_book
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>values(?,?,?)";
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>//2.调用方法实现
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>Object[]
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>args={
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>book.getUserId(),
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>book.getUsername(),
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>book.getUstatus()};
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>int
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>update
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>=
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>jdbcTemplate.update(sql,args);
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>System.out.println(update);
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>
        194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        195. </bean>}}
        复制代码
      • 测试
        1. @Testpublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>testJdbcTemplate(){
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>ApplicationContext
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>context
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>=
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>new
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>ClassPathXmlApplicationContext("bean1.xml");
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>BookService
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>bookService
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>=
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>context.getBean("bookService",
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>BookService.class);
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>Book
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>book
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>=
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>new
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>Book();
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>book.setUserId("1");
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>book.setUsername("java");
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>book.setUstatus("A");
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>bookService.addBook(book);}
        复制代码
        结果:
      修改和删除


      • 修改
        1. @Overridepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>update(Book
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>book)
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>sql="update
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>t_book
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>set
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>username=?,ustate=?
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>where
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>userId=?";
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>Object[]
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>args={
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>book.getUsername(),
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>book.getUstatus(),
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>book.getUserId()};
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>int
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>update
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>=
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>jdbcTemplate.update(sql,args);
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>System.out.println(update>0?"修改成功":"修改失败");}
        复制代码
      • 删除
        1. @Overridepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>delete(String
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>id)
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>sql="delete
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>from
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>t_book
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>where
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>userId=?)";
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>int
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>update
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>=
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>jdbcTemplate.update(sql,
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>id);
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>System.out.println(update>0?"删除成功":"删除失败");}
        复制代码
      查询返回某个值


      • 查询表里面有多少条记录,返回是某个值
      • 使用JdbcTemplate对象里面的queryForOcject方法实现查询操作
        queryForObject(String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Class
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>requiredType)
        参数:
        String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql:sql语句
        Class
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>requiredType:返回类型Class

      1. //查询表记录数@Overridepublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>int
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>selectCount(){
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>String
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>sql="select
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>count(*)
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>from
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>t_book";
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>Integer
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>count
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>=
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>jdbcTemplate.queryForObject(sql,
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>Integer.class);
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>return
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>count;}
      复制代码
      查询返回对象


      • 场景:查询图书详情
      • JdbcTemplate实现查询返回对象的方法:queryForObject
        queryForObject(String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>RowMapper
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>rowMapper,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Object...
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>args)
        参数:
        String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql:sql语句
        RowMapper
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>rowMapper:RowMapper是接口,返回不同类型的数据,使用这个接口里面实现类完成数据封装
        Object...
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>args:sql语句值

      1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      2. </bean>//查询返回对象@Overridepublic
      3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      4. </bean>Book
      5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      6. </bean>findBookInfo(String
      7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      8. </bean>id)
      9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      10. </bean>{
      11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      12. </bean>
      13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      14. </bean>
      15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      16. </bean>
      17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      18. </bean>String
      19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      20. </bean>sql="select
      21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      22. </bean>*
      23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      24. </bean>from
      25. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      26. </bean>t_book
      27. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      28. </bean>where
      29. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      30. </bean>userId=?";
      31. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      32. </bean>
      33. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      34. </bean>
      35. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      36. </bean>
      37. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      38. </bean>//调用方法
      39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      40. </bean>
      41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      42. </bean>
      43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      44. </bean>
      45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      46. </bean>Book
      47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      48. </bean>book
      49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      50. </bean>=
      51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      52. </bean>jdbcTemplate.queryForObject(sql,
      53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      54. </bean>new
      55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      56. </bean>BeanPropertyRowMapper(Book.class),id);
      57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      58. </bean>
      59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      60. </bean>
      61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      62. </bean>
      63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      64. </bean>return
      65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      66. </bean>book;}
      复制代码
      查询返回集合


      • 场景:查询图书列表分页
      • 调用JdbcTemplate的query方法实现查询返回集合
        query(String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>RowMapper
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>rowMapper,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Object...
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>args)
        参数:
        String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql:sql语句
        RowMapper
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>rowMapper:RowMapper是接口,返回不同类型的数据,使用这个接口里面实现类完成数据封装
        Object...
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>args:sql语句值

      1. //查询返回集合@Overridepublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>List
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>findAllBook()
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>{
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>String
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>sql="select
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>*
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>from
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>t_book";
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>//调用方法
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>List
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>bookList
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>=
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>jdbcTemplate.query(sql,
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>new
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>BeanPropertyRowMapper(Book.class));
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>return
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>bookList;}
      复制代码
      批量操作


      • 批量操作:操作表里面的多条记录
      • JdbcTemplate实现批量添加操作
        batchUpdate(String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql,
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>List
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>batchArgs)
        参数:
        String
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>sql:sql语句
        List
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>batchArgs:List集合,添加多条记录数据
        1. //批量添加@Overridepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>batchAddBook(List
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>batchArgs)
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>sql="insert
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>into
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>t_book
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>values(?,?,?)";
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>int[]
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>ints=jdbcTemplate.batchUpdate(sql,batchArgs);
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>System.out.println(Arrays.toString(ints));}
        复制代码
        测试:
        1. //批量添加_测试List
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>batchArgs=new
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>ArrayList();Object[]
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>o1={"3","java","a"};Object[]
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>o2={"4","c++","b"};Object[]
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>o3={"5","MySQL","e"};batchArgs.add(o1);batchArgs.add(o2);batchArgs.add(o3);//调用批量添加bookService.batchAdd(batchArgs);
        复制代码
      • JdbcTemplate实现批量修改操作
        1. //批量修改@Overridepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>batchUpdateBook(List
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>batchArgs)
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>sql="update
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>t_book
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>set
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>username=?,ustatus=?
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>where
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>userId=?";
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>int[]
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>ints
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>=
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>jdbcTemplate.batchUpdate(sql,
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>batchArgs);
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>System.out.println(Arrays.toString(ints));}
        复制代码
        测试:
        1. //批量修改_测试List
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>batchArgs=new
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>ArrayList();Object[]
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>obj1={"java111","a3","3"};Object[]
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>obj2={"c++1010","b4","4"};Object[]
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>obj3={"MySQL11","c5","5"};batchArgs.add(obj1);batchArgs.add(obj2);batchArgs.add(obj3);//调用方法bookService.batchUpdate(batchArgs);
        复制代码
      • JdbcTemplate实现批量删除操作
        1. //批量删除@Overridepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>void
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>batchDeleteBook(List
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>batchArgs)
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>String
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>sql="delete
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>from
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>t_book
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>where
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>userId=?";
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>int[]
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>ints
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>=
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>jdbcTemplate.batchUpdate(sql,
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>batchArgs);
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>System.out.println(Arrays.toString(ints));}
        复制代码
        测试:
        1. //批量修改List
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>batchArgs=new
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>ArrayList();Object[]
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>obj1={"3"};Object[]
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>obj2={"4"};batchArgs.add(obj1);batchArgs.add(obj2);//调用方法实现批量删除bookService.batchDelete(batchArgs);
        复制代码


      事务管理

      概念


      • 什么是事务?
        事务是数据库操作最基本的单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败

        • 典型场景:银行转账


        • lucy转账100元给mary
        • lucy少100,mary多100

      • 事务的四个特性(ACID

        • 原子性
        • 一致性
        • 隔离性
        • 持久性


      搭建事务操作环境



      • 创建数据库表,添加数据
        1. CREATE
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>TABLE
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>t_account(<bean id="emp"  autowire="byName">
        6. <bean id="emp"  autowire="byType">
        7.        
        8. </bean>
        9. <bean id="dept" ></bean>
        10. </bean>
        11. <bean id="dept" ></bean>id
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>VARCHAR(20),<bean id="emp"  autowire="byName">
        14. <bean id="emp"  autowire="byType">
        15.        
        16. </bean>
        17. <bean id="dept" ></bean>
        18. </bean>
        19. <bean id="dept" ></bean>username
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>VARCHAR(50),<bean id="emp"  autowire="byName">
        22. <bean id="emp"  autowire="byType">
        23.        
        24. </bean>
        25. <bean id="dept" ></bean>
        26. </bean>
        27. <bean id="dept" ></bean>money
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>VARCHAR(50))INSERT
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>INTO
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>t_account
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>VALUES('1','lucy',1000)INSERT
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>INTO
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>t_account
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>VALUES('2','mary',1000)
        复制代码
      • 创建service,搭建dao,完成对象创建注入关系
        service注入dao,在dao注入JdbcTemplate,在JdbcTemplate注入DataSource
        1. @Servicepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserService
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>//注入dao
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>@Autowired
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>private
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>UserDao
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>userDao;}
        复制代码
        1. @Repositorypublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserDaoImpl
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>implements
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>UserDao{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>@Autowired
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>private
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>JdbcTemplate
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>jdbcTemplate;}
        复制代码
      • 在dao创建两个方法,多钱和少钱的方法,在service创建方法(转账的方法)
        1. @Repositorypublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserDaoImpl
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>implements
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>UserDao{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>@Autowired
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>private
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>JdbcTemplate
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>jdbcTemplate;
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>//少钱
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>@Override
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>public
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>void
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>reduceMoney()
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>{
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>String
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>sql="update
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>t_account
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>set
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>money=money-?
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>where
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>username=?";
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>jdbcTemplate.update(sql,100,"lucy");
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>}
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>//多钱
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>@Override
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>public
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>void
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>addMoney()
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>{
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>String
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>sql="update
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>t_account
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>set
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>money=money+?
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>where
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>username=?";
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>jdbcTemplate.update(sql,100,"mary");
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>}}
        复制代码
        1. @Servicepublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserService
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>//注入dao
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>@Autowired
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>private
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>UserDao
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>userDao;
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>//转账的方法
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>public
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>void
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>accountMoney(){
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>//lucy少100
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>userDao.reduceMoney();<bean
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>id="book"
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean><property
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>name="bname"
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>value="易筋经"></property>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean><property
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>name="bauthor"
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>value="达摩老祖"></property>
        128. </bean>
        129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        130. </bean>
        131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        132. </bean>
        133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        134. </bean>
        135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        136. </bean>//mary多100
        137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        138. </bean>
        139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        140. </bean>
        141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        142. </bean>
        143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        144. </bean>
        145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        146. </bean>
        147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        148. </bean>
        149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        150. </bean>
        151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        152. </bean>userDao.addMoney();
        153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        154. </bean>
        155. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        156. </bean>
        157. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        158. </bean>
        159. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        160. </bean>}}
        复制代码
      • 上面代码,如果正常执行没有问题的,但是如果代码执行过程中出现异常,有问题
        1. //转账的方法public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>void
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>accountMoney(){
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>//lucy少100
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>userDao.reduceMoney();
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>//模拟异常
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>int
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>i
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>=10/0;
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>//mary多100
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>userDao.addMoney();}//结果lucy少了100,而mary并没有增加100
        复制代码

        • 以上的问题如何解决呢?

          • 使用事务进行解决

        • 事务操作过程
          1. //转账的方法public
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>void
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>accountMoney(){
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>try
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>{
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>//第一步
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>开启事务
          38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          39. </bean>
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>
          46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          47. </bean>
          48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          49. </bean>
          50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          51. </bean>
          52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          53. </bean>//第二步
          54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          55. </bean>进行业务操作
          56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          57. </bean>
          58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          59. </bean>
          60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          61. </bean>
          62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          63. </bean>
          64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          65. </bean>
          66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          67. </bean>
          68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          69. </bean>
          70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          71. </bean>//lucy少100
          72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          73. </bean>
          74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          75. </bean>
          76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          77. </bean>
          78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          79. </bean>
          80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          81. </bean>
          82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          83. </bean>
          84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          85. </bean>
          86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          87. </bean>userDao.reduceMoney();
          88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          89. </bean>
          90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          91. </bean>
          92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          93. </bean>
          94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          95. </bean>
          96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          97. </bean>
          98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          99. </bean>
          100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          101. </bean>
          102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          103. </bean>//模拟异常
          104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          105. </bean>
          106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          107. </bean>
          108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          109. </bean>
          110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          111. </bean>
          112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          113. </bean>
          114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          115. </bean>
          116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          117. </bean>
          118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          119. </bean>int
          120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          121. </bean>i
          122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          123. </bean>=
          124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          125. </bean>10
          126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          127. </bean>/
          128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          129. </bean>0;
          130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          131. </bean>
          132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          133. </bean>
          134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          135. </bean>
          136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          137. </bean>
          138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          139. </bean>
          140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          141. </bean>
          142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          143. </bean>
          144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          145. </bean>//mary多100
          146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          147. </bean>
          148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          149. </bean>
          150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          151. </bean>
          152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          153. </bean>
          154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          155. </bean>
          156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          157. </bean>
          158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          159. </bean>
          160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          161. </bean>userDao.addMoney();<bean
          162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          163. </bean>id="book"
          164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          165. </bean>>
          166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          167. </bean>
          168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          169. </bean>
          170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          171. </bean>
          172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          173. </bean>
          174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          175. </bean>
          176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          177. </bean>
          178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          179. </bean>
          180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          181. </bean><property
          182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          183. </bean>name="bname"
          184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          185. </bean>value="易筋经"></property>
          186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          187. </bean>
          188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          189. </bean>
          190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          191. </bean>
          192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          193. </bean><property
          194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          195. </bean>name="bauthor"
          196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          197. </bean>value="达摩老祖"></property>
          198. </bean>
          199. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          200. </bean>
          201. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          202. </bean>
          203. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          204. </bean>
          205. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          206. </bean>//第三步
          207. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          208. </bean>没有发生异常,提交事务
          209. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          210. </bean>
          211. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          212. </bean>
          213. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          214. </bean>
          215. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          216. </bean>}catch
          217. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          218. </bean>(Exception
          219. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          220. </bean>e){
          221. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          222. </bean>
          223. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          224. </bean>
          225. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          226. </bean>
          227. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          228. </bean>
          229. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          230. </bean>
          231. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          232. </bean>
          233. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          234. </bean>
          235. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          236. </bean>//第四步
          237. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          238. </bean>出现异常,事务回滚
          239. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          240. </bean>
          241. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          242. </bean>
          243. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          244. </bean>
          245. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          246. </bean>}}
          复制代码


      Spring事务管理介绍


      • 事务添加到JavaEE三层结构里面Service层(业务逻辑层)
      • 在Spring进行事务管理操作有两种方式:编程式事务管理声明式事务管理(使用)
      • 声明式事务管理

        • 基于注解方式(使用)
        • 基于xml配置文件方式

      • 在Spring进行声明式事务管理,底层使用AOP原理
      • Spring事务管理API:PlatformTransactionManager
        PlatformTransactionManager接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类

      注解声明式事务管理


      • 在Spring配置文件配置事务管理器
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>
        复制代码
      • 在Spring配置文件,开启事务注解

        • 在Spring配置文件引入名称空间tx
          1. [/code]
          2. [*][b]开启事务注解[/b]
          3. [code]
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>
          复制代码

      • 在service类上面(获取service类里面方法上面)添加事务注解

        • @Transactional,这个注解添加到类上面,也可以添加到方法上面
        • 如果把这个注解添加到上面,这个类里面的所有的方法都添加事务
        • 如果把这个注解添加到方法上面,为这个方法添加事务
        1. @Service@Transactionalpublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserService
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{}
        复制代码

      声明式事务管理参数配置

      在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数


      • propagation:事务传播行为
        多事务方法直接进行调用,这个过程中事务是如何进行管理的
        事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。
        传播属性描述REQUIRED如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事物,并在自己的事务内运行REQUIRED_NEW当前的方法必须启动新事物,并在它自己的事务内运行,如果有事务正在运行,应该将它挂起SUPPORTS如果有事务在运行,当前的方法就在这个事务内运行,否则它可以不运行在事务中NOT_SUPPROTS当前的方法不应该运行在事务中,如果有运行的事务,将它挂起MANDATORY当前的方法必须运行在事物内部,如果没有正在运行的事务,就抛出异常NEVER当前的方法不应该运行在事务中,如果有运行的事务,就抛出异常NESTED如果有事务在运行,当前的方法就应该在这个事务的嵌套事务内运行。否则,就启动一个新的事务,并在它自己的事务内运行
        1. @Service@Transactional(propagation
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>=
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>Propagation.REQUIRED)public
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>class
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>UserService
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>{}
        复制代码
      • isolation:事务隔离级别

        • 事务有特性称为隔离性,多事务操作之间不会产生影响。不考虑隔离性产生很多问题
        • 有三个读的问题:脏读不可重复读虚读/幻读

          • 脏读:一个未提交事务读取到另一个未提交事务的数据
          • 不可重复读:一个未提交事务读取到另一提交事务修改的数据
          • 虚读:一个未提交事务读取到另一个提交事务添加数据

        • 解决:通过设置事务隔离性,解决读问题
          脏读不可重复度幻读READ
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>UNCOMMITTED(读未提交)有有有READ
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>COMMITTED(读已提交)无有有REPEATABLE
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>READ(可重复读)无无有SERIALIZABLE(串行化)无无无
        1. @Service@Transactional(propagation
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>=
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>Propagation.REQUIRED,
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>isolation
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>=
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>Isolation.REPEATABLE_READ)public
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>class
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>UserService
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>{}
        复制代码
      • timeout:超时时间

        • 事务需要在一定时间内提交,如果不提交进行回滚
        • 默认值是-1,设置时间以秒为单位进行计算
        1. @Service@Transactional(timeout
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>=
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>-1,
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>propagation
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>=
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>Propagation.REQUIRED,
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>isolation
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>=
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>Isolation.REPEATABLE_READ)public
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>class
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>UserService
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>{}
        复制代码
      • readOnly:是否只读

        • 读:查询操作,写:添加修改删除操作
        • readOnly默认值false,表示可以查询,可以添加修改删除操作
        • 设置readOnly值成true之后,只能查询
        1. @Service@Transactional(readOnly
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>=
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>true,
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>timeout
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>=
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>-1,
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>propagation
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>=
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>Propagation.REQUIRED,isolation
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>=
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>Isolation.REPEATABLE_READ)public
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>class
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>UserService
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>{}
        复制代码
      • rollbackFor:回滚

        设置出现哪些异常进行事务回滚
      • noRollbackFor:不回滚

        设置出现哪些异常不进行事务回滚

      XML声明式事务管理(了解)


      • 在Spring配置文件中进行配置
        第一步,配置事务管理器
        第二步,配置通知
        第三步,配置切入点和切面
        1. <bean
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>id="book"
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>>
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean><property
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>name="bname"
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>value="易筋经"></property>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean><property
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>name="bauthor"
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>value="达摩老祖"></property>
        38. </bean><bean
        39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        40. </bean>id="book"
        41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        42. </bean>>
        43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        44. </bean>
        45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        46. </bean>
        47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        48. </bean>
        49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        50. </bean>
        51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        52. </bean>
        53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        54. </bean>
        55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        56. </bean>
        57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        58. </bean><property
        59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        60. </bean>name="bname"
        61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        62. </bean>value="易筋经"></property>
        63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        64. </bean>
        65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        66. </bean>
        67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        68. </bean>
        69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        70. </bean><property
        71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        72. </bean>name="bauthor"
        73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        74. </bean>value="达摩老祖"></property>
        75. </bean><bean
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>id="book"
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean><property
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>name="bname"
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>value="易筋经"></property>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean><property
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>name="bauthor"
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>value="达摩老祖"></property>
        112. </bean><bean
        113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        114. </bean>id="book"
        115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        116. </bean>>
        117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        118. </bean>
        119. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        120. </bean>
        121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        122. </bean>
        123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        124. </bean>
        125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        126. </bean>
        127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        128. </bean>
        129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        130. </bean>
        131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        132. </bean><property
        133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        134. </bean>name="bname"
        135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        136. </bean>value="易筋经"></property>
        137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        138. </bean>
        139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        140. </bean>
        141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        142. </bean>
        143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        144. </bean><property
        145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        146. </bean>name="bauthor"
        147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        148. </bean>value="达摩老祖"></property>
        149. </bean><bean
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>id="book"
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean><property
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>name="bname"
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>value="易筋经"></property>
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean><property
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>name="bauthor"
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>value="达摩老祖"></property>
        186. </bean>
        复制代码

      完全注解声明式事务管理

      创建配置类,使用配置类代替xml配置文件
      1. @Configuration
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>//配置类@ComponentScan(basePackages
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>=
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>"com.atguigu")
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>//组件扫描@EnableTransactionManagement
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>//开启事务public
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>class
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>TxConfig
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>{
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>//创建数据库连接池
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>@Bean
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>public
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>DruidDataSource
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>getDruidDataSource(){
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>DruidDataSource
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>dataSource
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>=
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>new
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>DruidDataSource();
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>dataSource.setDriverClassName("com.mysql.jdbc.Driver");
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>dataSource.setUrl("jdbc:mysql:///user_db");
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>
      114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      115. </bean>
      116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      117. </bean>dataSource.setUsername("root");
      118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      119. </bean>
      120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      121. </bean>
      122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      123. </bean>
      124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      125. </bean>
      126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      127. </bean>
      128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      129. </bean>
      130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      131. </bean>
      132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      133. </bean>dataSource.setPassword("root");
      134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      135. </bean>
      136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      137. </bean>
      138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      139. </bean>
      140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      141. </bean>
      142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      143. </bean>
      144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      145. </bean>
      146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      147. </bean>
      148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      149. </bean>return
      150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      151. </bean>dataSource;
      152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      153. </bean>
      154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      155. </bean>
      156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      157. </bean>
      158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      159. </bean>}
      160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      161. </bean>
      162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      163. </bean>
      164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      165. </bean>
      166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      167. </bean>//创建JdbcTemplate对象
      168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      169. </bean>
      170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      171. </bean>
      172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      173. </bean>
      174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      175. </bean>@Bean
      176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      177. </bean>
      178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      179. </bean>
      180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      181. </bean>
      182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      183. </bean>public
      184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      185. </bean>JdbcTemplate
      186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      187. </bean>getJdbcTemplate(DataSource
      188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      189. </bean>dataSource){
      190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      191. </bean>
      192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      193. </bean>
      194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      195. </bean>
      196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      197. </bean>
      198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      199. </bean>
      200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      201. </bean>
      202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      203. </bean>
      204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      205. </bean>//到ioc容器中根据类型找到dataSource
      206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      207. </bean>
      208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      209. </bean>
      210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      211. </bean>
      212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      213. </bean>
      214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      215. </bean>
      216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      217. </bean>
      218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      219. </bean>
      220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      221. </bean>JdbcTemplate
      222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      223. </bean>jdbcTemplate
      224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      225. </bean>=
      226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      227. </bean>new
      228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      229. </bean>JdbcTemplate();
      230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      231. </bean>
      232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      233. </bean>
      234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      235. </bean>
      236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      237. </bean>
      238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      239. </bean>
      240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      241. </bean>
      242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      243. </bean>
      244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      245. </bean>//注入dataSource
      246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      247. </bean>
      248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      249. </bean>
      250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      251. </bean>
      252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      253. </bean>
      254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      255. </bean>
      256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      257. </bean>
      258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      259. </bean>
      260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      261. </bean>jdbcTemplate.setDataSource(dataSource);
      262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      263. </bean>
      264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      265. </bean>
      266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      267. </bean>
      268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      269. </bean>
      270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      271. </bean>
      272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      273. </bean>
      274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      275. </bean>
      276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      277. </bean>return
      278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      279. </bean>
      280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      281. </bean>jdbcTemplate;
      282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      283. </bean>
      284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      285. </bean>
      286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      287. </bean>
      288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      289. </bean>}
      290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      291. </bean>
      292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      293. </bean>
      294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      295. </bean>
      296. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      297. </bean>//创建事务事务管理器
      298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      299. </bean>
      300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      301. </bean>
      302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      303. </bean>
      304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      305. </bean>@Bean
      306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      307. </bean>
      308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      309. </bean>
      310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      311. </bean>
      312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      313. </bean>public
      314. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      315. </bean>DataSourceTransactionManager
      316. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      317. </bean>getDataSourceTransactionManager(DataSource
      318. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      319. </bean>dataSource){
      320. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      321. </bean>
      322. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      323. </bean>
      324. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      325. </bean>
      326. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      327. </bean>
      328. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      329. </bean>
      330. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      331. </bean>
      332. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      333. </bean>
      334. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      335. </bean>DataSourceTransactionManager
      336. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      337. </bean>transactionManager
      338. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      339. </bean>=
      340. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      341. </bean>new
      342. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      343. </bean>DataSourceTransactionManager();
      344. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      345. </bean>
      346. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      347. </bean>
      348. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      349. </bean>
      350. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      351. </bean>
      352. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      353. </bean>
      354. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      355. </bean>
      356. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      357. </bean>
      358. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      359. </bean>transactionManager.setDataSource(dataSource);
      360. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      361. </bean>
      362. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      363. </bean>
      364. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      365. </bean>
      366. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      367. </bean>
      368. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      369. </bean>
      370. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      371. </bean>
      372. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      373. </bean>
      374. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      375. </bean>return
      376. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      377. </bean>transactionManager;
      378. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      379. </bean>
      380. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      381. </bean>
      382. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      383. </bean>
      384. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      385. </bean>}}
      复制代码

      Spring5框架新功能

      整个Spring5框架的代码基于Java8,运行时兼容JDK9,许多不建议使用的类和方法在代码库中删除。
      Spring5.0框架自带了通用的日志封装


      • Spring5已经移除Log4jConfigListener,官方建议使用Log4j2
      • Spring5框架整合Log4j2
      第一步,引入jar包
      第二步,创建log4j2.xml配置文件
      1. <bean
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>id="book"
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>>
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean><property
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>name="bname"
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>value="易筋经"></property>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean><property
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>name="bauthor"
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>value="达摩老祖"></property>
      38. </bean><bean
      39. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      40. </bean>id="book"
      41. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      42. </bean>>
      43. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      44. </bean>
      45. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      46. </bean>
      47. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      48. </bean>
      49. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      50. </bean>
      51. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      52. </bean>
      53. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      54. </bean>
      55. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      56. </bean>
      57. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      58. </bean><property
      59. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      60. </bean>name="bname"
      61. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      62. </bean>value="易筋经"></property>
      63. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      64. </bean>
      65. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      66. </bean>
      67. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      68. </bean>
      69. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      70. </bean><property
      71. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      72. </bean>name="bauthor"
      73. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      74. </bean>value="达摩老祖"></property>
      75. </bean><bean
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>id="book"
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean><property
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>name="bname"
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>value="易筋经"></property>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean><property
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>name="bauthor"
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>value="达摩老祖"></property>
      112. </bean><bean
      113. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      114. </bean>id="book"
      115. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      116. </bean>>
      117. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      118. </bean>
      119. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      120. </bean>
      121. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      122. </bean>
      123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      124. </bean>
      125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      126. </bean>
      127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      128. </bean>
      129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      130. </bean>
      131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      132. </bean><property
      133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      134. </bean>name="bname"
      135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      136. </bean>value="易筋经"></property>
      137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      138. </bean>
      139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      140. </bean>
      141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      142. </bean>
      143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      144. </bean><property
      145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      146. </bean>name="bauthor"
      147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      148. </bean>value="达摩老祖"></property>
      149. </bean><bean
      150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      151. </bean>id="book"
      152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      153. </bean>>
      154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      155. </bean>
      156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      157. </bean>
      158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      159. </bean>
      160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      161. </bean>
      162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      163. </bean>
      164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      165. </bean>
      166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      167. </bean>
      168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      169. </bean><property
      170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      171. </bean>name="bname"
      172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      173. </bean>value="易筋经"></property>
      174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      175. </bean>
      176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      177. </bean>
      178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      179. </bean>
      180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      181. </bean><property
      182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      183. </bean>name="bauthor"
      184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      185. </bean>value="达摩老祖"></property>
      186. </bean><bean
      187. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      188. </bean>id="book"
      189. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      190. </bean>>
      191. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      192. </bean>
      193. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      194. </bean>
      195. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      196. </bean>
      197. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      198. </bean>
      199. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      200. </bean>
      201. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      202. </bean>
      203. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      204. </bean>
      205. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      206. </bean><property
      207. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      208. </bean>name="bname"
      209. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      210. </bean>value="易筋经"></property>
      211. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      212. </bean>
      213. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      214. </bean>
      215. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      216. </bean>
      217. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      218. </bean><property
      219. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      220. </bean>name="bauthor"
      221. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      222. </bean>value="达摩老祖"></property>
      223. </bean><bean
      224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      225. </bean>id="book"
      226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      227. </bean>>
      228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      229. </bean>
      230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      231. </bean>
      232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      233. </bean>
      234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      235. </bean>
      236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      237. </bean>
      238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      239. </bean>
      240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      241. </bean>
      242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      243. </bean><property
      244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      245. </bean>name="bname"
      246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      247. </bean>value="易筋经"></property>
      248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      249. </bean>
      250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      251. </bean>
      252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      253. </bean>
      254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      255. </bean><property
      256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      257. </bean>name="bauthor"
      258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      259. </bean>value="达摩老祖"></property>
      260. </bean><bean
      261. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      262. </bean>id="book"
      263. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      264. </bean>>
      265. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      266. </bean>
      267. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      268. </bean>
      269. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      270. </bean>
      271. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      272. </bean>
      273. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      274. </bean>
      275. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      276. </bean>
      277. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      278. </bean>
      279. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      280. </bean><property
      281. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      282. </bean>name="bname"
      283. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      284. </bean>value="易筋经"></property>
      285. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      286. </bean>
      287. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      288. </bean>
      289. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      290. </bean>
      291. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      292. </bean><property
      293. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      294. </bean>name="bauthor"
      295. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      296. </bean>value="达摩老祖"></property>
      297. </bean>
      298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      299. </bean>
      300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      301. </bean>
      302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      303. </bean>
      304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      305. </bean>
      306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      307. </bean>
      308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      309. </bean>
      310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      311. </bean>
      312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      313. </bean>
      复制代码
      Spring5
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>框架核心容器支持@Nullable
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>注解


      @Nullable注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以为空,参数值可以为空

      • 注解用在方法上面,方法返回值可以为空
        1. @NullableString
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>getId();
        复制代码
      • 注解使用在方法参数里面,方法参数可以为空
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>void
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>registerBean(@Nullable
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>String
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>beanName,
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>Class
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>beanClass,
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>@Nullable
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>Supplier
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>supplier,
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>BeanDefinitionCustomizer...
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>customizers)
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>{
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>this.reader.registerBean(beanClass,
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>beanName,
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>supplier,
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>customizers);}
        复制代码
      • 注解使用在属性上面,属性可以为空
        1. @Nullableprivate
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>String
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>bookName;
        复制代码

      Spring5
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>核心容器函数式风格GenericApplicationContext

      1. //函数式风格创建对象,交给spring进行管理@Testpublic
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>void
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>testGenericApplicationContext(){
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>//1
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>创建GenericApplicationContext对象
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>GenericApplicationContext
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>context
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>=
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>new
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>GenericApplicationContext();
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>//2
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>调用context的方法进行对象注册
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>context.refresh();
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>context.registerBean("user1",
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>User.class,
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>()->
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>new
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>User());
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>//3
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>获取在spring注册到的对象
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>//
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>User
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>user
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>=
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>(User)context.getBean("com.atguigu.spring5.test.User");
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>User
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>user
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>=
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>(User)context.getBean("user1");
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>System.out.println(user);}
      复制代码
      Spring5
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>支持整合JUnit5



      • 整合JUnit4
        第一步,引入Spring相关针对测试依赖

        第二步,创建测试类,使用注解方式完成
        1. @RunWith(SpringJUnit4ClassRunner.class)
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>//指定单元测试框架@ContextConfiguration("classpath:bean1.xml")
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>//加载配置文件public
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>class
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>JTest4
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>{
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>@Autowired
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>private
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>UserService
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>userService;
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>@Test
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>public
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>void
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>test1(){
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>userService.accountMoney();
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>}}
        复制代码
      • Spring5整合JUnit5
        Junit5的用途:

        • 单元测试:JUnit
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>可以用于编写和运行单元测试,而
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>框架提供了对依赖注入、AOP、事务管理等特性的支持,可以帮助开发人员编写更加全面和真实的单元测试。
        • 集成测试:在使用
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>框架开发应用程序时,通常需要进行集成测试以确保不同组件之间的协作正常运行。JUnit
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>可以与
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>的测试支持模块结合,提供对
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>上下文加载、自动装配、事务管理等功能的支持,从而实现更加全面的集成测试。
        • 测试驱动开发(TDD):通过使用
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>JUnit
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>和
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>框架,开发人员可以实践测试驱动开发方法,即先编写测试用例,然后根据测试用例编写实际的业务逻辑代码。这有助于提高代码的质量和稳定性。
        • 参数化测试:JUnit
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>提供了对参数化测试的支持,而
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Spring
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>框架中的一些组件和特性可能需要进行各种参数化测试以验证其行为。结合
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>JUnit
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>的参数化测试功能,可以更方便地进行这些测试。
        第一步,引入JUnit5的jar包
        第二步,创建测试类,使用注解完成
        1. @ExtendWith(SpringExtension.class)@ContextConfiguration("classpath:bean1.xml")public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>JTest5
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>@Autowired
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>private
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>UserService
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>userService;
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>@Test
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>public
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>void
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>test1(){
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>userService.accountMoney();
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>}}
        复制代码

        • 使用一个复合注解替代上面两个注解完成整合
          1. @SpringJUnitConfig(locations
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>=
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>"classpath:bean1.xml")public
          6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          7. </bean>class
          8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          9. </bean>JTest5
          10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          11. </bean>{
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>
          16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          17. </bean>
          18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          19. </bean>@Autowired
          20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          21. </bean>
          22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          23. </bean>
          24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          25. </bean>
          26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          27. </bean>private
          28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          29. </bean>UserService
          30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          31. </bean>userService;
          32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          33. </bean>
          34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          35. </bean>
          36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          37. </bean>
          38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          39. </bean>@Test
          40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          41. </bean>
          42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          43. </bean>
          44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          45. </bean>
          46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          47. </bean>public
          48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          49. </bean>void
          50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          51. </bean>test1(){
          52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          53. </bean>
          54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          55. </bean>
          56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          57. </bean>
          58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          59. </bean>
          60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          61. </bean>
          62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          63. </bean>
          64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          65. </bean>
          66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          67. </bean>userService.accountMoney();
          68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          69. </bean>
          70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          71. </bean>
          72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          73. </bean>
          74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          75. </bean>}}
          复制代码



      Spring5框架新功能——Webflux

      SpringWebflux介绍


      • SpringWebflux是Spring5添加新的模块,用于web开发的,功能和SpringMVC类似的,Webflux是使用了当前一种比较流行的响应式编程而出现的框架。
      • 传统
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>web
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>框架,比如
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>SpringMVC,是基于
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Servlet
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>容器的。而Webflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>是一种异步非阻塞的框架,异步非阻塞的框架在
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Servlet3.1
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>以后才支持,核心是基于Reactor的相关
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>API
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>实现的

      • 异步非阻塞

        • 异步和同步针对调用者,调用者发送请求,如果等着对方回应之后才去做其他事情就是同步,如果发送请求之后不等着对方回应就去做其他事情就是异步。
        • 阻塞和非阻塞针对被调用者,被调用者收到请求之后,做完了请求任务才给出反馈,收到请求之后马上给出犯规然后再去做事情就是非阻塞。

      • Webflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>特点:

        • 非阻塞式:在有限资源下,提高系统吞吐量和伸缩性,以
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Reactor
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>为基础实现响应式编程
        • 函数式编程:Spring5
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>框架基于
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>java8,Webflux
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>使用
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>Java8
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>函数式编程方式
          实现路由请求

      • 与SpringMVC作比较

        • 两个框架都可以使用注解方式,都运行在Tomet等容器中
        • SpringMVC
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>采用命令式编程,Webflux
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>采用异步响应式编程


      响应式编程(Java实现)

      响应式编程的介绍

      响应式编程是一种面向数据流变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。电子表格程序就是响应式编程的一个例子。单元格可以包含字面值或类似"=B1+C1"的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化。
      Java8及其之前版本

      提供的观察者模式两个类
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>Observer
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>和
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>Observable
      1. public
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>class
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>ObserverDemo
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>extends
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>Observable
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>{
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>public
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>static
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>void
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>main(String[]
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>args)
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>{
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>ObserverDemo
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>observer
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>=
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>new
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>ObserverDemo();
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>//添加观察者
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>observer.addObserver((o,arg)->{<bean
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>id="book"
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean><property
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>name="bname"
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>value="易筋经"></property>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>
      114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      115. </bean>
      116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      117. </bean><property
      118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      119. </bean>name="bauthor"
      120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      121. </bean>value="达摩老祖"></property>
      122. </bean>System.out.println("发生变化");
      123. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      124. </bean>
      125. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      126. </bean>
      127. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      128. </bean>
      129. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      130. </bean>
      131. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      132. </bean>
      133. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      134. </bean>
      135. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      136. </bean>
      137. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      138. </bean>});
      139. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      140. </bean>
      141. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      142. </bean>
      143. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      144. </bean>
      145. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      146. </bean>
      147. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      148. </bean>
      149. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      150. </bean>
      151. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      152. </bean>
      153. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      154. </bean>observer.addObserver((o,arg)->{<bean
      155. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      156. </bean>id="book"
      157. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      158. </bean>>
      159. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      160. </bean>
      161. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      162. </bean>
      163. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      164. </bean>
      165. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      166. </bean>
      167. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      168. </bean>
      169. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      170. </bean>
      171. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      172. </bean>
      173. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      174. </bean><property
      175. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      176. </bean>name="bname"
      177. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      178. </bean>value="易筋经"></property>
      179. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      180. </bean>
      181. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      182. </bean>
      183. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      184. </bean>
      185. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      186. </bean><property
      187. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      188. </bean>name="bauthor"
      189. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      190. </bean>value="达摩老祖"></property>
      191. </bean>System.out.println("手动被观察者通知,准备改变");
      192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      193. </bean>
      194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      195. </bean>
      196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      197. </bean>
      198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      199. </bean>
      200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      201. </bean>
      202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      203. </bean>
      204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      205. </bean>
      206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      207. </bean>});
      208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      209. </bean>
      210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      211. </bean>
      212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      213. </bean>
      214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      215. </bean>
      216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      217. </bean>
      218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      219. </bean>
      220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      221. </bean>
      222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      223. </bean>observer.setChanged();//数据变化
      224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      225. </bean>
      226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      227. </bean>
      228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      229. </bean>
      230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      231. </bean>
      232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      233. </bean>
      234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      235. </bean>
      236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      237. </bean>
      238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      239. </bean>observer.notifyObservers();//通知
      240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      241. </bean>
      242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      243. </bean>
      244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      245. </bean>
      246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      247. </bean>}}
      复制代码
      响应式编程(Reachor实现)


      • 响应式编程操作中,Reachor是满足Reactive规范框架的
      • Reachor有两个核心类:Mono和Flux,这两个类实现接口Publisher,提供丰富操作符。Flux对象实现发布者,返回N个元素;Mono实现发布者,返回0或者1个元素
      • Flux和Mono都是数据流的发布者,使用Flux和Mono都可以发出三种数据信号:元素值错误信号完成信号,其中错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了,错误信号终止数据流的同时会把错误信息传递给订阅者

      • 代码演示Flux和Mono
        第一步,引入依赖
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>io.projectreactor
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>reactor-core
        17. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        18. </bean>
        19. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        20. </bean>
        21. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        22. </bean>
        23. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        24. </bean>3.1.5.RELEASE
        复制代码
        第二步,编程代码
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>static
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>void
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>main(String[]
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>args){
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>//just方法直接声明
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>Flux.just(1,
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>2,
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>3,
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>4);
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>Mono.just(1);
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>//其他方法
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>Integer[]
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>array
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>=
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>{1,
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>2,
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>3,
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>4};
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>Flux.fromArray(array);
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>List
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>list
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>=
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>Arrays.asList(array);
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>Flux.fromIterable(list);
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>Stream
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>stream
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>=
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>list.stream();
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>Flux.fromStream(stream);}
        复制代码
      • 三种信号特点

        • 错误信号和完成信号都是终止信号,不能共存
        • 如果没有发送任何元素值,而是直接发送错误或者完成信号,表示是空数据流
        • 如果没有错误信号,没有完成信号,表示是无限数据流

      • 调用just或者其他方法只是声明数据流,数据流并没有发出,只有进行订阅之后才会触发数据流,不订阅什么都不会发生的
        1. //just方法直接声明Flux.just(1,
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>2,
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>3,
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>4).subscribe(System.out::print);Mono.just(1).subscribe(System.out::print);
        复制代码
      • 操作符:对数据流进行一道道操作,称为操作符,比如工厂流水线

        • map
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>元素映射为新元素
        • flatmap
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>元素映射为流(把每个元素转换成流,把转换之后的多个流合并成大的流)

      SpringWebflux执行流程和核心API

      SpringWebflux基于Reactor,默认使用容器时Netty,Netty是高性能的NIO框架,异步非阻塞的框架

      • Netty

        • BIO
        • NIO

      • SpringWebflux执行过程和SpringMVC相似

        • SpringWebflux核心控制器DispatchHandler,实现接口WebHandler
        • 接口WebHandler有一个方法:
          1. public
          2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          3. </bean>interface
          4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          5. </bean>WebHandler{<bean id="emp"  autowire="byName">
          6. <bean id="emp"  autowire="byType">
          7.        
          8. </bean>
          9. <bean id="dept" ></bean>
          10. </bean>
          11. <bean id="dept" ></bean>Mono
          12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          13. </bean>handle(ServerWebExchange
          14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          15. </bean>var1);}
          复制代码
        • SpringWebflux
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>里面
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>DispatcherHandler,负责请求的处理

          • HandlerMapping:请求查询到处理的方法
          • HandlerAdapter:真正负责请求处理
          • HandlerResultHandler:响应结果处理

        • SpringWebflux
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>实现函数式编程,两个接口:RouterFunction(路由处理)和
          <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
          </bean>HandlerFunction(处理函数
        SpringWebflux(基于注解编程模型)

        SpringWebflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>实现方式有两种:注解编程模型函数式编程模型
        使用注解编程模型方式,和之前
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>SpringMVC
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>使用相似的,只需要把相关依赖配置到项目中,SpringBoot
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>自动配置相关运行容器,默认情况下使用
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Netty
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>服务器
        第一步,创建
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>SpringBoot
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>工程,引入
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>Webflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>依赖
        1. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        2. </bean>
        3. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        4. </bean>
        5. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        6. </bean>
        7. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        8. </bean>org.springframework.boot
        9. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        10. </bean>
        11. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        12. </bean>
        13. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        14. </bean>
        15. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        16. </bean>spring-boot-starter-webflux
        复制代码
        第二步,配置启动端口号
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>在application.properties中
        1. server.port=8081
        复制代码
        第三步,创建包和相关类
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>实体类
        1. //实体类public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>User{
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>private
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>String
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>name;
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>private
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>String
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>gender;
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>private
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>Integer
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>age;
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>public
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>User(String
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>name,
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>String
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>gender,
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>Integer
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>age){
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>this.name
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>=
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>name;
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>this.gender
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>=
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>gender;
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>this.age
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>=
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>age;
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>}
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>public
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>void
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>setName(String
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>name){
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>......}
        复制代码
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>创建接口定义操作的方法
        1. //用户操作接口public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>interface
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserService
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>//根据id查询用户
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>Mono
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>getUserById(int
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>id);
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>//查询所有用户
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>Flux
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>getAllUser();
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>//添加用户
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>Mono
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>saveUserInfo(Mono
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>user);}
        复制代码
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>接口实现类
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserServiceImpl
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>implements
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>UserService
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>{
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>//创建
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>map
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>集合存储数据
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>private
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>final
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>Map
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>users
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>=
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>new
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>HashMap();
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>public
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>UserServiceImpl()
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>{
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>this.users.put(1,new
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>User("lucy","nan",20));
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>this.users.put(2,new
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>User("mary","nv",30));
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>this.users.put(3,new
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>User("jack","nv",50));
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>}
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>//根据id查询
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>@Override
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>public
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>Mono
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>getUserById(int
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>id)
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>{
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>return
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>Mono.justOrEmpty(this.users.get(id));
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>}
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>//查询多个用户
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>@Override
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>
        194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        195. </bean>
        196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        197. </bean>
        198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        199. </bean>public
        200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        201. </bean>Flux
        202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        203. </bean>getAllUser()
        204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        205. </bean>{
        206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        207. </bean>
        208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        209. </bean>
        210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        211. </bean>
        212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        213. </bean>
        214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        215. </bean>
        216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        217. </bean>
        218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        219. </bean>
        220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        221. </bean>return
        222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        223. </bean>Flux.fromIterable(this.users.values());
        224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        225. </bean>
        226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        227. </bean>
        228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        229. </bean>
        230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        231. </bean>}
        232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        233. </bean>
        234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        235. </bean>
        236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        237. </bean>
        238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        239. </bean>//添加用户
        240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        241. </bean>
        242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        243. </bean>
        244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        245. </bean>
        246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        247. </bean>@Override
        248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        249. </bean>
        250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        251. </bean>
        252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        253. </bean>
        254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        255. </bean>public
        256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        257. </bean>Mono
        258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        259. </bean>saveUserInfo(Mono
        260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        261. </bean>userMono)
        262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        263. </bean>{
        264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        265. </bean>
        266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        267. </bean>
        268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        269. </bean>
        270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        271. </bean>
        272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        273. </bean>
        274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        275. </bean>
        276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        277. </bean>
        278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        279. </bean>return
        280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        281. </bean>userMono.doOnNext(person
        282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        283. </bean>->
        284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        285. </bean>{<bean
        286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        287. </bean>id="book"
        288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        289. </bean>>
        290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        291. </bean>
        292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        293. </bean>
        294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        295. </bean>
        296. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        297. </bean>
        298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        299. </bean>
        300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        301. </bean>
        302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        303. </bean>
        304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        305. </bean><property
        306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        307. </bean>name="bname"
        308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        309. </bean>value="易筋经"></property>
        310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        311. </bean>
        312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        313. </bean>
        314. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        315. </bean>
        316. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        317. </bean><property
        318. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        319. </bean>name="bauthor"
        320. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        321. </bean>value="达摩老祖"></property>
        322. </bean>//向map集合里面放值<bean
        323. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        324. </bean>id="book"
        325. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        326. </bean>>
        327. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        328. </bean>
        329. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        330. </bean>
        331. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        332. </bean>
        333. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        334. </bean>
        335. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        336. </bean>
        337. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        338. </bean>
        339. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        340. </bean>
        341. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        342. </bean><property
        343. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        344. </bean>name="bname"
        345. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        346. </bean>value="易筋经"></property>
        347. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        348. </bean>
        349. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        350. </bean>
        351. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        352. </bean>
        353. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        354. </bean><property
        355. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        356. </bean>name="bauthor"
        357. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        358. </bean>value="达摩老祖"></property>
        359. </bean>int
        360. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        361. </bean>id
        362. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        363. </bean>=
        364. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        365. </bean>users.size()+1;<bean
        366. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        367. </bean>id="book"
        368. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        369. </bean>>
        370. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        371. </bean>
        372. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        373. </bean>
        374. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        375. </bean>
        376. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        377. </bean>
        378. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        379. </bean>
        380. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        381. </bean>
        382. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        383. </bean>
        384. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        385. </bean><property
        386. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        387. </bean>name="bname"
        388. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        389. </bean>value="易筋经"></property>
        390. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        391. </bean>
        392. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        393. </bean>
        394. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        395. </bean>
        396. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        397. </bean><property
        398. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        399. </bean>name="bauthor"
        400. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        401. </bean>value="达摩老祖"></property>
        402. </bean>users.put(id,person);
        403. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        404. </bean>
        405. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        406. </bean>
        407. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        408. </bean>
        409. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        410. </bean>
        411. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        412. </bean>
        413. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        414. </bean>
        415. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        416. </bean>
        417. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        418. </bean>}).thenEmpty(Mono.empty());
        419. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        420. </bean>
        421. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        422. </bean>
        423. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        424. </bean>
        425. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        426. </bean>}}
        复制代码
        ​<bean id="emp"  autowire="byName">
        <bean id="emp"  autowire="byType">
               
        </bean>
        <bean id="dept" ></bean>
        </bean>
        <bean id="dept" ></bean>创建controller
        1. @RestControllerpublic
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>class
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>UserController
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>{
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>//注入
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>service
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>@Autowired
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>private
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>UserService
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>userService;
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>//id
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>查询
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>@GetMapping("/user/{id}")
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>public
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>Mono
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>geetUserId(@PathVariable
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>int
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>id)
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>{
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>return
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>userService.getUserById(id);
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>}
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>//查询所有
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>
        110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        111. </bean>
        112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        113. </bean>
        114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        115. </bean>@GetMapping("/user")
        116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        117. </bean>
        118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        119. </bean>
        120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        121. </bean>
        122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        123. </bean>public
        124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        125. </bean>Flux
        126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        127. </bean>getUsers()
        128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        129. </bean>{
        130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        131. </bean>
        132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        133. </bean>
        134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        135. </bean>
        136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        137. </bean>
        138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        139. </bean>
        140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        141. </bean>
        142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        143. </bean>
        144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        145. </bean>return
        146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        147. </bean>userService.getAllUser();
        148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        149. </bean>
        150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        151. </bean>
        152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        153. </bean>
        154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        155. </bean>}
        156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        157. </bean>
        158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        159. </bean>
        160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        161. </bean>
        162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        163. </bean>//添加
        164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        165. </bean>
        166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        167. </bean>
        168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        169. </bean>
        170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        171. </bean>@PostMapping("/saveuser")
        172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        173. </bean>
        174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        175. </bean>
        176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        177. </bean>
        178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        179. </bean>public
        180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        181. </bean>Mono
        182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        183. </bean>saveUser(@RequestBody
        184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        185. </bean>User
        186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        187. </bean>user)
        188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        189. </bean>{
        190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        191. </bean>
        192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        193. </bean>
        194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        195. </bean>
        196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        197. </bean>
        198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        199. </bean>
        200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        201. </bean>
        202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        203. </bean>
        204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        205. </bean>Mono
        206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        207. </bean>userMono
        208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        209. </bean>=
        210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        211. </bean>Mono.just(user);
        212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        213. </bean>
        214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        215. </bean>
        216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        217. </bean>
        218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        219. </bean>
        220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        221. </bean>
        222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        223. </bean>
        224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        225. </bean>
        226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        227. </bean>return
        228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        229. </bean>userService.saveUserInfo(userMono);
        230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        231. </bean>
        232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        233. </bean>
        234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        235. </bean>
        236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        237. </bean>}}
        复制代码
        SpringMVC
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>方式实现,同步阻塞的方式,基于
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>SpringMVC+Servlet+Tomcat
        SpringWebflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>方式实现,异步非阻塞的方式,基于
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>SpringWebflux+Reactor+Netty

      SpringWebflux(基于函数式编程模型)


      • 在使用函数式编程模型操作时候,需要自己初始化服务器
      • 基于函数式编程模型时候,有两个核心接口:RouterFunction(实现路由功能,请求转发给对应的
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>handler
        )和
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>HandlerFunction(处理请求生成响应的函数)。核心任务定义两个函数式接口的实现并且启动需要的服务器。
      • SpringWebflux
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>请求和响应不再是
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>ServletRequest
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>和
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>ServletResponse
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>,而是ServerRequest
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>和
        <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        </bean>ServerResponse
      第一步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>把注解编程模型工程复制一份
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>,保留
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>entity
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>和
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>service
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>内容
      第二步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>创建
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>Handler(具体实现方法)
      1. public
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>class
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>UserHandler
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>{
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>private
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>final
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>UserService
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>userService;
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>public
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>UserHandler(UserService
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>userService)
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>{
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>this.userService
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>=
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>userService;
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>}
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>//根据
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>id
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>查询
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>public
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>Mono
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>getUserById(ServerRequest
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>request)
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>{
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>//获取
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>id
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>值
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>
      114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      115. </bean>
      116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      117. </bean>
      118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      119. </bean>
      120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      121. </bean>
      122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      123. </bean>
      124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      125. </bean>
      126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      127. </bean>int
      128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      129. </bean>userId
      130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      131. </bean>=
      132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      133. </bean>Integer.valueOf(request.pathVariable("id"));
      134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      135. </bean>
      136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      137. </bean>
      138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      139. </bean>
      140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      141. </bean>
      142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      143. </bean>
      144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      145. </bean>
      146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      147. </bean>
      148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      149. </bean>//空值处理
      150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      151. </bean>
      152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      153. </bean>
      154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      155. </bean>
      156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      157. </bean>
      158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      159. </bean>
      160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      161. </bean>
      162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      163. </bean>
      164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      165. </bean>Mono
      166. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      167. </bean>notFound
      168. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      169. </bean>=
      170. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      171. </bean>ServerResponse.notFound().build();
      172. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      173. </bean>
      174. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      175. </bean>
      176. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      177. </bean>
      178. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      179. </bean>
      180. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      181. </bean>
      182. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      183. </bean>
      184. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      185. </bean>
      186. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      187. </bean>//调用
      188. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      189. </bean>service
      190. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      191. </bean>方法得到数据
      192. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      193. </bean>
      194. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      195. </bean>
      196. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      197. </bean>
      198. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      199. </bean>
      200. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      201. </bean>
      202. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      203. </bean>
      204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      205. </bean>
      206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      207. </bean>Mono
      208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      209. </bean>userMono
      210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      211. </bean>=
      212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      213. </bean>this.userService.getUserById(userId);
      214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      215. </bean>
      216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      217. </bean>
      218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      219. </bean>
      220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      221. </bean>
      222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      223. </bean>
      224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      225. </bean>
      226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      227. </bean>
      228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      229. </bean>//把
      230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      231. </bean>userMono
      232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      233. </bean>进行转换返回
      234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      235. </bean>
      236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      237. </bean>
      238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      239. </bean>
      240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      241. </bean>
      242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      243. </bean>
      244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      245. </bean>
      246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      247. </bean>
      248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      249. </bean>//使用
      250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      251. </bean>Reactor
      252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      253. </bean>操作符
      254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      255. </bean>flatMap
      256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      257. </bean>
      258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      259. </bean>
      260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      261. </bean>
      262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      263. </bean>
      264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      265. </bean>
      266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      267. </bean>
      268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      269. </bean>
      270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      271. </bean>return
      272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      273. </bean>userMono.flatMap(person
      274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      275. </bean>->
      276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      277. </bean>ServerResponse.ok().contentType(MediaType.APPLICATION_JSON)<bean
      278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      279. </bean>id="book"
      280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      281. </bean>>
      282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      283. </bean>
      284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      285. </bean>
      286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      287. </bean>
      288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      289. </bean>
      290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      291. </bean>
      292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      293. </bean>
      294. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      295. </bean>
      296. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      297. </bean><property
      298. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      299. </bean>name="bname"
      300. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      301. </bean>value="易筋经"></property>
      302. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      303. </bean>
      304. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      305. </bean>
      306. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      307. </bean>
      308. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      309. </bean><property
      310. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      311. </bean>name="bauthor"
      312. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      313. </bean>value="达摩老祖"></property>
      314. </bean>
      315. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      316. </bean>
      317. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      318. </bean>
      319. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      320. </bean>
      321. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      322. </bean>
      323. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      324. </bean>
      325. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      326. </bean>
      327. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      328. </bean>
      329. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      330. </bean>.body(fromObject(person)))<bean
      331. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      332. </bean>id="book"
      333. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      334. </bean>>
      335. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      336. </bean>
      337. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      338. </bean>
      339. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      340. </bean>
      341. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      342. </bean>
      343. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      344. </bean>
      345. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      346. </bean>
      347. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      348. </bean>
      349. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      350. </bean><property
      351. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      352. </bean>name="bname"
      353. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      354. </bean>value="易筋经"></property>
      355. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      356. </bean>
      357. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      358. </bean>
      359. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      360. </bean>
      361. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      362. </bean><property
      363. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      364. </bean>name="bauthor"
      365. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      366. </bean>value="达摩老祖"></property>
      367. </bean><bean id="emp"  autowire="byName">
      368. <bean id="emp"  autowire="byType">
      369.        
      370. </bean>
      371. <bean id="dept" ></bean>
      372. </bean>
      373. <bean id="dept" ></bean><bean id="emp"  autowire="byName">
      374. <bean id="emp"  autowire="byType">
      375.        
      376. </bean>
      377. <bean id="dept" ></bean>
      378. </bean>
      379. <bean id="dept" ></bean>.switchIfEmpty(notFound);
      380. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      381. </bean>
      382. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      383. </bean>
      384. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      385. </bean>
      386. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      387. </bean>}
      388. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      389. </bean>
      390. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      391. </bean>
      392. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      393. </bean>
      394. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      395. </bean>//查询所有
      396. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      397. </bean>
      398. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      399. </bean>
      400. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      401. </bean>
      402. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      403. </bean>public
      404. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      405. </bean>Mono
      406. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      407. </bean>getAllUsers()
      408. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      409. </bean>{
      410. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      411. </bean>
      412. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      413. </bean>
      414. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      415. </bean>
      416. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      417. </bean>
      418. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      419. </bean>
      420. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      421. </bean>
      422. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      423. </bean>
      424. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      425. </bean>//调用
      426. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      427. </bean>service
      428. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      429. </bean>得到结果
      430. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      431. </bean>
      432. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      433. </bean>
      434. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      435. </bean>
      436. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      437. </bean>
      438. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      439. </bean>
      440. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      441. </bean>
      442. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      443. </bean>
      444. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      445. </bean>Flux
      446. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      447. </bean>users
      448. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      449. </bean>=
      450. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      451. </bean>this.userService.getAllUser();
      452. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      453. </bean>
      454. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      455. </bean>
      456. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      457. </bean>
      458. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      459. </bean>
      460. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      461. </bean>
      462. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      463. </bean>
      464. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      465. </bean>
      466. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      467. </bean>return
      468. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      469. </bean>ServerResponse.ok().contentType(MediaType.APPLICATION_JSON).body(users,User.class);
      470. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      471. </bean>
      472. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      473. </bean>
      474. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      475. </bean>
      476. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      477. </bean>}
      478. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      479. </bean>
      480. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      481. </bean>
      482. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      483. </bean>
      484. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      485. </bean>//添加
      486. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      487. </bean>
      488. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      489. </bean>
      490. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      491. </bean>
      492. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      493. </bean>public
      494. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      495. </bean>Mono
      496. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      497. </bean>saveUser(ServerRequest
      498. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      499. </bean>request)
      500. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      501. </bean>{
      502. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      503. </bean>
      504. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      505. </bean>
      506. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      507. </bean>
      508. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      509. </bean>
      510. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      511. </bean>
      512. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      513. </bean>
      514. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      515. </bean>
      516. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      517. </bean>//得到
      518. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      519. </bean>user
      520. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      521. </bean>对象
      522. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      523. </bean>
      524. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      525. </bean>
      526. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      527. </bean>
      528. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      529. </bean>
      530. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      531. </bean>
      532. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      533. </bean>
      534. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      535. </bean>
      536. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      537. </bean>Mono
      538. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      539. </bean>userMono
      540. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      541. </bean>=
      542. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      543. </bean>request.bodyToMono(User.class);
      544. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      545. </bean>
      546. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      547. </bean>
      548. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      549. </bean>
      550. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      551. </bean>
      552. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      553. </bean>
      554. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      555. </bean>
      556. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      557. </bean>
      558. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      559. </bean>return
      560. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      561. </bean>ServerResponse.ok().build(this.userService.saveUserInfo(userMono));
      562. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      563. </bean>
      564. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      565. </bean>
      566. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      567. </bean>
      568. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      569. </bean>}}
      复制代码
      第三步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>初始化服务器,编写
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>Router

      • 创建路由的方法
        1. //1
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>创建
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>Router
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>路由public
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>RouterFunction
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>routingFunction()
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>{
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>//创建
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>hanler
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>对象
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>UserService
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>userService
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>=
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>new
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>UserServiceImpl();
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>UserHandler
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>handler
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>=
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>new
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>UserHandler(userService);
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>//设置路由
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>return
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>RouterFunctions.route(
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>GET("/users/{id}").and(accept(APPLICATION_JSON)),handler::getUserById)
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>
        96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        97. </bean>
        98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        99. </bean>
        100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        101. </bean>
        102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        103. </bean>
        104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        105. </bean>
        106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        107. </bean>.andRoute(GET("/users").and(accept(APPLICATION_JSON)),
        108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        109. </bean>handler::getAllUsers);}
        复制代码
      • 创建服务器完成适配
        1. //2
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>创建服务器完成适配public
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>void
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>createReactorServer()
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>{
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>//路由和
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>handler
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>适配
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>RouterFunction
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>route
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>=
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>routingFunction();
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>HttpHandler
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>httpHandler
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>=
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>toHttpHandler(route);
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>ReactorHttpHandlerAdapter
        58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        59. </bean>adapter
        60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        61. </bean>=
        62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        63. </bean>new
        64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        65. </bean>ReactorHttpHandlerAdapter(httpHandler);
        66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        67. </bean>
        68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        69. </bean>
        70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        71. </bean>
        72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        73. </bean>//创建服务器
        74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        75. </bean>
        76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        77. </bean>
        78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        79. </bean>
        80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        81. </bean>HttpServer
        82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        83. </bean>httpServer
        84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        85. </bean>=
        86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        87. </bean>HttpServer.create();
        88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        89. </bean>
        90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        91. </bean>
        92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        93. </bean>
        94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        95. </bean>httpServer.handle(adapter).bindNow();}
        复制代码
      • 最终调用
        1. public
        2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        3. </bean>static
        4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        5. </bean>void
        6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        7. </bean>main(String[]
        8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        9. </bean>args)
        10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        11. </bean>throws
        12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        13. </bean>Exception{
        14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        15. </bean>
        16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        17. </bean>
        18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        19. </bean>
        20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        21. </bean>Server
        22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        23. </bean>server
        24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        25. </bean>=
        26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        27. </bean>new
        28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        29. </bean>Server();
        30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        31. </bean>
        32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        33. </bean>
        34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        35. </bean>
        36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        37. </bean>server.createReactorServer();
        38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        39. </bean>
        40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        41. </bean>
        42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        43. </bean>
        44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        45. </bean>System.out.println("enter
        46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        47. </bean>to
        48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        49. </bean>exit");
        50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        51. </bean>
        52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        53. </bean>
        54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        55. </bean>
        56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
        57. </bean>System.in.read();}
        复制代码
      第四步
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>使用
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>WebClient
      <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      </bean>调用
      1. public
      2. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      3. </bean>class
      4. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      5. </bean>Client
      6. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      7. </bean>{
      8. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      9. </bean>
      10. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      11. </bean>
      12. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      13. </bean>
      14. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      15. </bean>public
      16. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      17. </bean>static
      18. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      19. </bean>void
      20. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      21. </bean>main(String[]
      22. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      23. </bean>args)
      24. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      25. </bean>{
      26. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      27. </bean>
      28. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      29. </bean>
      30. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      31. </bean>
      32. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      33. </bean>
      34. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      35. </bean>
      36. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      37. </bean>
      38. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      39. </bean>
      40. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      41. </bean>//调用服务器地址
      42. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      43. </bean>
      44. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      45. </bean>
      46. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      47. </bean>
      48. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      49. </bean>
      50. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      51. </bean>
      52. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      53. </bean>
      54. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      55. </bean>
      56. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      57. </bean>WebClient
      58. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      59. </bean>webClient
      60. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      61. </bean>=
      62. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      63. </bean>WebClient.create("http://127.0.0.1:5794");
      64. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      65. </bean>
      66. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      67. </bean>
      68. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      69. </bean>
      70. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      71. </bean>
      72. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      73. </bean>
      74. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      75. </bean>
      76. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      77. </bean>
      78. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      79. </bean>//根据
      80. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      81. </bean>id
      82. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      83. </bean>查询
      84. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      85. </bean>
      86. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      87. </bean>
      88. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      89. </bean>
      90. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      91. </bean>
      92. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      93. </bean>
      94. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      95. </bean>
      96. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      97. </bean>
      98. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      99. </bean>String
      100. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      101. </bean>id
      102. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      103. </bean>=
      104. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      105. </bean>"1";
      106. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      107. </bean>
      108. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      109. </bean>
      110. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      111. </bean>
      112. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      113. </bean>
      114. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      115. </bean>
      116. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      117. </bean>
      118. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      119. </bean>
      120. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      121. </bean>User
      122. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      123. </bean>userresult
      124. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      125. </bean>=
      126. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      127. </bean>webClient.get().uri("/users/{id}",
      128. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      129. </bean>id)<bean
      130. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      131. </bean>id="book"
      132. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      133. </bean>>
      134. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      135. </bean>
      136. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      137. </bean>
      138. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      139. </bean>
      140. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      141. </bean>
      142. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      143. </bean>
      144. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      145. </bean>
      146. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      147. </bean>
      148. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      149. </bean><property
      150. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      151. </bean>name="bname"
      152. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      153. </bean>value="易筋经"></property>
      154. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      155. </bean>
      156. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      157. </bean>
      158. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      159. </bean>
      160. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      161. </bean><property
      162. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      163. </bean>name="bauthor"
      164. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      165. </bean>value="达摩老祖"></property>
      166. </bean>.accept(MediaType.APPLICATION_JSON).retrieve().bodyToMono(User.class)<bean
      167. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      168. </bean>id="book"
      169. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      170. </bean>>
      171. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      172. </bean>
      173. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      174. </bean>
      175. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      176. </bean>
      177. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      178. </bean>
      179. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      180. </bean>
      181. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      182. </bean>
      183. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      184. </bean>
      185. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      186. </bean><property
      187. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      188. </bean>name="bname"
      189. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      190. </bean>value="易筋经"></property>
      191. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      192. </bean>
      193. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      194. </bean>
      195. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      196. </bean>
      197. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      198. </bean><property
      199. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      200. </bean>name="bauthor"
      201. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      202. </bean>value="达摩老祖"></property>
      203. </bean>.block();
      204. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      205. </bean>
      206. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      207. </bean>
      208. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      209. </bean>
      210. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      211. </bean>
      212. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      213. </bean>
      214. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      215. </bean>
      216. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      217. </bean>
      218. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      219. </bean>System.out.println(userresult.getName());
      220. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      221. </bean>
      222. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      223. </bean>
      224. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      225. </bean>
      226. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      227. </bean>
      228. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      229. </bean>
      230. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      231. </bean>
      232. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      233. </bean>
      234. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      235. </bean>//查询所有
      236. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      237. </bean>
      238. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      239. </bean>
      240. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      241. </bean>
      242. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      243. </bean>
      244. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      245. </bean>
      246. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      247. </bean>
      248. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      249. </bean>
      250. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      251. </bean>Flux
      252. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      253. </bean>results
      254. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      255. </bean>=
      256. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      257. </bean>webClient.get().uri("/users")<bean
      258. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      259. </bean>id="book"
      260. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      261. </bean>>
      262. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      263. </bean>
      264. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      265. </bean>
      266. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      267. </bean>
      268. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      269. </bean>
      270. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      271. </bean>
      272. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      273. </bean>
      274. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      275. </bean>
      276. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      277. </bean><property
      278. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      279. </bean>name="bname"
      280. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      281. </bean>value="易筋经"></property>
      282. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      283. </bean>
      284. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      285. </bean>
      286. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      287. </bean>
      288. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      289. </bean><property
      290. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      291. </bean>name="bauthor"
      292. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      293. </bean>value="达摩老祖"></property>
      294. </bean>.accept(MediaType.APPLICATION_JSON).retrieve().bodyToFlux(User.class);
      295. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      296. </bean>
      297. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      298. </bean>
      299. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      300. </bean>
      301. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      302. </bean>
      303. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      304. </bean>
      305. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      306. </bean>
      307. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      308. </bean>
      309. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      310. </bean>results.map(stu
      311. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      312. </bean>->
      313. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      314. </bean>stu.getName())<bean
      315. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      316. </bean>id="book"
      317. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      318. </bean>>
      319. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      320. </bean>
      321. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      322. </bean>
      323. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      324. </bean>
      325. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      326. </bean>
      327. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      328. </bean>
      329. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      330. </bean>
      331. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      332. </bean>
      333. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      334. </bean><property
      335. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      336. </bean>name="bname"
      337. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      338. </bean>value="易筋经"></property>
      339. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      340. </bean>
      341. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      342. </bean>
      343. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      344. </bean>
      345. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      346. </bean><property
      347. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      348. </bean>name="bauthor"
      349. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      350. </bean>value="达摩老祖"></property>
      351. </bean>.buffer().doOnNext(System.out::println).blockFirst();
      352. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      353. </bean>
      354. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      355. </bean>
      356. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      357. </bean>
      358. <bean id="book"  p:bname="九阳神功" p:bauthor="无名氏">
      359. </bean>}}
      复制代码

      参考资料:https://www.bilibili.com/video/BV1Vf4y127N5?p=1&vd_source=cf21268954e139179e71f046bac01e56

      免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    0 个回复

    倒序浏览

    快速回复

    您需要登录后才可以回帖 登录 or 立即注册

    本版积分规则

    曂沅仴駦

    金牌会员
    这个人很懒什么都没写!

    标签云

    快速回复 返回顶部 返回列表