讀書筆記之Spring實戰
阿新 • • 發佈:2018-12-08
《Spring實戰(第3版)》
第1章
(個人覺得可以忽略)
第2章 裝配Bean 1、宣告Bean 1)使用一個或多個XML檔案作為配置檔案; 普通spring配置檔案模板:<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> </beans> |
<bean id="duke" class="com.springinaction.springidol.Juhhler"/> |
<bean id="northMan" class="com.wangxinxin.entity.NorthMan" p:a="testA" p:sonnet29-ref="sonnet29" /> |
<!-- 裝配List、Set和Array Map --> <bean id="colloection1" class="com.wangxinxin.entity.Colloection1"> <property name="northMans"> <list> <ref bean="northMan"/> <ref bean="northMan2"/> </list> </property> <property name="set1"> <set> <ref bean="northMan"/> <ref bean="northMan2"/> </set> </property> <property name="map1"> <map> <entry key="no1" value-ref="northMan"/> <entry key="no2" value-ref="northMan2"/> </map> </property> <!-- map的key和value都是string時優先使用properties --> <property name="map2"> <props> <prop key="no1">111111111</prop> <prop key="no2">222222222</prop> </props> </property> </bean> |
EQ 就是 EQUAL等於 NQ 就是 NOT EQUAL不等於 GT 就是 GREATER THAN大於 LT 就是 LESS THAN小於 GE 就是 GREATER THAN OR EQUAL 大於等於 LE 就是 LESS THAN OR EQUAL 小於等於 |
第3章 最小化spring xml配置 1、bean的自動裝配; 2、bean的自動檢測; 1)4種類型的自動裝配(byName/byType/constructor/autodetect) eg: <bean id="test" class="..." autowire="byName"></bean> 為屬性自動裝配ID與該屬性的名字相同的Bean。 <bean id="test" class="..." autowire="byType"></bean> 為屬性自動裝配ID與該屬性的型別相同的Bean。存在多個則報異常。可以通過標誌一個首選bean或取消某個bean的候選資格(排除首選primary的true/false,預設true;排除bean autowire-candidate="fasle")。 <bean id="test" class="..." autowire="constructor"></bean> constructor自動裝配 <bean id="test" class="..." autowire="autodetect"></bean> 最佳自動裝配 <beans ..... default-autowire="byType"></beans> 全域性預設自動裝配 可以混合使用自動裝配和顯式裝配。 3、面向註解的bean裝配; 容器預設禁用註解裝配。 <context:annotation-config /> 支援3種不同的註解(spring自帶的@Autowired註解;JSR-330的@Inject註解;JSR-250的@Resource註解) @Autowired可以標註set方法、構造器、屬性變數,其中屬性不一定要裝配,null值也是可以接受的。(@Autowire(required=fasle),預設true);存在多個相同bean時,@Autowire @Qualifier("class1")
/** * Spring自定義限定器 * @author huawangxin * 2017年8月6日 上午11:11:30 */ @Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Qualifier public @interface StringedInstrument { } |
/** * JSR-330自定義限定器 * @author huawangxin * 2017年8月6日 下午1:09:38 */ @Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Qualifier public @interface StringedInstrument2 { } |
<context:component-scan base-package="com.wangxinxin.entity"> <context:include-filter type="assignable" expression="com.wangxinxin.entity.Jugger"/> <context:exclude-filter type="annotation" expression="com.wangxinxin.util.StringedInstrument2"/> </context:component-scan> |
/** * 配置類 * @author huawangxin * 2017年8月6日 下午1:51:06 */ @Configuration public class SpringIdolConfig { @Bean public NorthMan northMan() { return new NorthMan(); } } |
第4章 待續。。。。。。