修改<>符号

This commit is contained in:
fanxb 2019-05-13 15:01:04 +08:00
parent 8d4c6dd309
commit 681210cd11
2 changed files with 13 additions and 15 deletions

View File

@ -14,12 +14,12 @@ categories:
| 类型 | 解释 | xml 配置 |
| ---------- | -------------------------------------- | ---------------------------------------------- |
| byName | 根据 Bean 的 name 或者 id | \<bean id="bean" class="…" autowire="byName"/> |
| ByType | 根据 Bean 类型自动装配 | \<bean id="bean" class="…" autowire="byType"/> |
| byName | 根据 Bean 的 name 或者 id | &lt;bean id="bean" class="…" autowire="byName"/&gt; |
| ByType | 根据 Bean 类型自动装配 | &lt;bean id="bean" class="…" autowire="byType"/&gt; |
| contructor | 根据 Bean 的构造器入参具有相同类型 | 同上 |
| Autodetect | 首先使用 contructor失败再尝试 byType | 同上 |
&emsp;&emsp;byType 在出现多个匹配项时不会自动选择一个然是报错为避免报错有两种办法1.使用\<bean>元素的 primary 属性,设置为首选 Bean但所有 bean 的默认 primary 都是 true因此我们需要将所有非首选 Bean 设置为**false**2.将 Bean 的`autowire-candidate`熟悉设置为**false**,取消 这个 Bean 的候选资格,这个 Bean 便不会自动注入了。
&emsp;&emsp;byType 在出现多个匹配项时不会自动选择一个然是报错为避免报错有两种办法1.使用&lt;bean&gt;元素的 primary 属性,设置为首选 Bean但所有 bean 的默认 primary 都是 true因此我们需要将所有非首选 Bean 设置为**false**2.将 Bean 的`autowire-candidate`熟悉设置为**false**,取消 这个 Bean 的候选资格,这个 Bean 便不会自动注入了。
&emsp;&emsp;contructor 自动装配和 byType 有一样的局限性,当发现多个 Bean 匹配某个构造器入参时Spring 不会尝试选择其中一个此外如果一个类有多个构造器都满足自动装配的条件Spring 也不会猜测哪个更合适使用。
@ -27,11 +27,11 @@ categories:
### 2、默认自动装配
&emsp;&emsp;如果需要为 Spring 应用上下文中的每个 Bean或者其中的大多数配置相同的 autowire 属性,可以在根元素\<beans>上增加一个 default-autowire 属性,默认该属性设置为 none。该属性只应用于指定配置文件中的所有 Bean并不是 Spring 上下文中的所有 Bean。
&emsp;&emsp;如果需要为 Spring 应用上下文中的每个 Bean或者其中的大多数配置相同的 autowire 属性,可以在根元素&lt;beans&gt;上增加一个 default-autowire 属性,默认该属性设置为 none。该属性只应用于指定配置文件中的所有 Bean并不是 Spring 上下文中的所有 Bean。
### 3、混合使用自动装配和显式装配
&emsp;&emsp;当我们对某个 Bean 使用了自动装配策略,并不代表我们不能对该 Bean 的某些属性进行显示装配,任然可以为任意一个属性配置\<property>元素,显式装配将会覆盖自动装配。**但是**当使用 constructor 自动装配策略时,我们必须让 Spring 自动装配构造器所有入参,不能使用\<constructor-arg>元素进行混合。
&emsp;&emsp;当我们对某个 Bean 使用了自动装配策略,并不代表我们不能对该 Bean 的某些属性进行显示装配,任然可以为任意一个属性配置&lt;property&gt;元素,显式装配将会覆盖自动装配。**但是**当使用 constructor 自动装配策略时,我们必须让 Spring 自动装配构造器所有入参,不能使用&lt;constructor-arg&gt;元素进行混合。
## 二、注解装配

View File

@ -87,9 +87,7 @@ categories:
| @annotation | 限制匹配带有指定注解连接点 |
| bean() | 使用 Bean ID 或 Bean 名称作为参数来限制切点只匹配特定的 Bean |
&emsp;其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是
其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是我们在编写切点定义时最主要使用的指示器。
&emsp;&emsp;其中只有 execution 指示器是唯一的执行匹配,其他都是限制匹配。因此 execution 指示器是我们在编写切点定义时最主要使用的指示器。
### 2、编写切点
@ -99,7 +97,7 @@ categories:
execution(* com.test.Hello.sayHello(..))
```
方法表达式以**\* **号开始,说明不管方法返回值的类型。然后指定全限定类名和方法名。对于方法参数列表,我们使用(\*\*)标识切点选择任意的 sayHello()方法,无论方法入参是什么。
方法表达式以" \* "开始,说明不管方法返回值的类型。然后指定全限定类名和方法名。对于方法参数列表,我们使用(..)标识切点选择任意的 sayHello()方法,无论方法入参是什么。
&emsp;&emsp;同时我们可以使用 (and)||(or)(not)来连接指示器,如下所示: