From 681210cd11f601da37a2d507ec928c33379f32d8 Mon Sep 17 00:00:00 2001 From: fanxb Date: Mon, 13 May 2019 15:01:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9<>=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java/spring/2.最小化XML配置.md | 16 ++++++++-------- java/spring/3.面向切面的Spring.md | 12 +++++------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/java/spring/2.最小化XML配置.md b/java/spring/2.最小化XML配置.md index b8db085..162d38e 100644 --- a/java/spring/2.最小化XML配置.md +++ b/java/spring/2.最小化XML配置.md @@ -3,9 +3,9 @@ id: "2018-10-21-10-38-05" date: "2018/10/21 10:38:05" title: "spring之最小化XML配置" tags: ["java", "spring"] -categories: -- "java" -- "spring学习" +categories: + - "java" + - "spring学习" --- ## 一、自动装配 @@ -14,12 +14,12 @@ categories: | 类型 | 解释 | xml 配置 | | ---------- | -------------------------------------- | ---------------------------------------------- | -| byName | 根据 Bean 的 name 或者 id | \ | -| ByType | 根据 Bean 类型自动装配 | \ | +| byName | 根据 Bean 的 name 或者 id | <bean id="bean" class="…" autowire="byName"/> | +| ByType | 根据 Bean 类型自动装配 | <bean id="bean" class="…" autowire="byType"/> | | contructor | 根据 Bean 的构造器入参具有相同类型 | 同上 | | Autodetect | 首先使用 contructor,失败再尝试 byType | 同上 | -  byType 在出现多个匹配项时不会自动选择一个然是报错,为避免报错,有两种办法:1.使用\元素的 primary 属性,设置为首选 Bean,但所有 bean 的默认 primary 都是 true,因此我们需要将所有非首选 Bean 设置为**false**;2.将 Bean 的`autowire-candidate`熟悉设置为**false**,取消 这个 Bean 的候选资格,这个 Bean 便不会自动注入了。 +  byType 在出现多个匹配项时不会自动选择一个然是报错,为避免报错,有两种办法:1.使用<bean>元素的 primary 属性,设置为首选 Bean,但所有 bean 的默认 primary 都是 true,因此我们需要将所有非首选 Bean 设置为**false**;2.将 Bean 的`autowire-candidate`熟悉设置为**false**,取消 这个 Bean 的候选资格,这个 Bean 便不会自动注入了。   contructor 自动装配和 byType 有一样的局限性,当发现多个 Bean 匹配某个构造器入参时,Spring 不会尝试选择其中一个;此外,如果一个类有多个构造器都满足自动装配的条件,Spring 也不会猜测哪个更合适使用。 @@ -27,11 +27,11 @@ categories: ### 2、默认自动装配 -  如果需要为 Spring 应用上下文中的每个 Bean(或者其中的大多数)配置相同的 autowire 属性,可以在根元素\上增加一个 default-autowire 属性,默认该属性设置为 none。该属性只应用于指定配置文件中的所有 Bean,并不是 Spring 上下文中的所有 Bean。 +  如果需要为 Spring 应用上下文中的每个 Bean(或者其中的大多数)配置相同的 autowire 属性,可以在根元素<beans>上增加一个 default-autowire 属性,默认该属性设置为 none。该属性只应用于指定配置文件中的所有 Bean,并不是 Spring 上下文中的所有 Bean。 ### 3、混合使用自动装配和显式装配 -  当我们对某个 Bean 使用了自动装配策略,并不代表我们不能对该 Bean 的某些属性进行显示装配,任然可以为任意一个属性配置\元素,显式装配将会覆盖自动装配。**但是**当使用 constructor 自动装配策略时,我们必须让 Spring 自动装配构造器所有入参,不能使用\元素进行混合。 +  当我们对某个 Bean 使用了自动装配策略,并不代表我们不能对该 Bean 的某些属性进行显示装配,任然可以为任意一个属性配置<property>元素,显式装配将会覆盖自动装配。**但是**当使用 constructor 自动装配策略时,我们必须让 Spring 自动装配构造器所有入参,不能使用<constructor-arg>元素进行混合。 ## 二、注解装配 diff --git a/java/spring/3.面向切面的Spring.md b/java/spring/3.面向切面的Spring.md index 48029ed..df6d469 100644 --- a/java/spring/3.面向切面的Spring.md +++ b/java/spring/3.面向切面的Spring.md @@ -3,9 +3,9 @@ id: "2018-10-22-10-38-05" date: "2018/10/22 10:38:05" title: "spring之面向切面" tags: ["java", "spring"] -categories: -- "java" -- "spring学习" +categories: + - "java" + - "spring学习" ---   Spring 的基础是 IOC 和 AOP,前面两节对 IOC 和 DI 做了简单总结,这里再对 AOP 进行一个学习总结,Spring 基础就算有一个初步了解了。 @@ -87,9 +87,7 @@ categories: | @annotation | 限制匹配带有指定注解连接点 | | bean() | 使用 Bean ID 或 Bean 名称作为参数来限制切点只匹配特定的 Bean | - 其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是 - -其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是我们在编写切点定义时最主要使用的指示器。 +  其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是我们在编写切点定义时最主要使用的指示器。 ### 2、编写切点 @@ -99,7 +97,7 @@ categories: execution(* com.test.Hello.sayHello(..)) ``` -方法表达式以**\* **号开始,说明不管方法返回值的类型。然后指定全限定类名和方法名。对于方法参数列表,我们使用(\*\*)标识切点选择任意的 sayHello()方法,无论方法入参是什么。 +方法表达式以" \* "开始,说明不管方法返回值的类型。然后指定全限定类名和方法名。对于方法参数列表,我们使用(..)标识切点选择任意的 sayHello()方法,无论方法入参是什么。   同时我们可以使用   (and),||(or),!(not)来连接指示器,如下所示: