分別對(duì)五種"集合"的注入
- 隨筆
切點(diǎn)就是具體的方法
冒泡排序口訣:外層循環(huán)n-1,內(nèi)層循環(huán)n-1-i.
將xml文件放到resources目錄下
-
集合注入
- 使用數(shù)組砚哗、List、Set脯倒、Map與Properties五種數(shù)據(jù)類(lèi)型的注入,Properties之前沒(méi)有接觸過(guò)簡(jiǎn)單介紹下
Properties(Java.util.Properties)办悟,該類(lèi)主要用于讀取Java的配置文件躬厌,不同的編程語(yǔ)言有自己所支持的配置文件铛碑,配置文件中很多變量是經(jīng)常改變的狠裹,為了方便用戶(hù)的配置,能讓用戶(hù)夠脫離程序本身去修改相關(guān)的變量設(shè)置汽烦。就像在Java中涛菠,其配置文件常為.properties文件,是以鍵值對(duì)的形式進(jìn)行參數(shù)配置的撇吞。該類(lèi)繼承與hashtable 在jdk中 Properties類(lèi)表示一組持久的屬性俗冻。 Properties可以保存到流中或從流中加載。 屬性列表中的每個(gè)鍵及其對(duì)應(yīng)的值都是一個(gè)字符串. 這個(gè)類(lèi)是線(xiàn)程安全的.
- 引用數(shù)據(jù)類(lèi)型都是使用ref方式進(jìn)行賦值
//集合注入
package com.qianfeng.bean;
import java.util.*;
public class MyCollection {
private String[] arrays;
private List<Object> list;
private Set<String> set;
private Map<String,String> map;
private Properties prop;
public String[] getArrays() {
return arrays;
}
public void setArrays(String[] arrays) {
this.arrays = arrays;
}
public List<Object> getList() {
return list;
}
public void setList(List<Object> list) {
this.list = list;
}
public Set<String> getSet() {
return set;
}
public void setSet(Set<String> set) {
this.set = set;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public Properties getProp() {
return prop;
}
public void setProp(Properties prop) {
this.prop = prop;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("MyCollection{");
sb.append("arrays=").append(Arrays.toString(arrays));
sb.append(", list=").append(list);
sb.append(", set=").append(set);
sb.append(", map=").append(map);
sb.append(", prop=").append(prop);
sb.append('}');
return sb.toString();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="s1" class="com.qianfeng.bean.Birthday">
<property name="year" value="2000"></property>
<property name="day" value="22"></property>
<property name="month" value="1"></property>
</bean>
<bean id="p1" class="com.qianfeng.bean.Student">
<property name="name" value="zhangjiaxiang"/>
<property name="birthday" ref="s1"/>
</bean>
<bean id="p2" class="com.qianfeng.bean.Student" p:birthday-ref="s1" p:name="aaaa" />
<bean id="mycoll" class="com.qianfeng.bean.MyCollection">
<property name="arrays">
<array>
<value>java</value>
<value>html5</value>
<value>java</value>
</array>
</property>
<property name="list">
<list>
<value>jack</value>
<ref bean="p1"/>
</list>
</property>
<property name="set">
<set>
<value>hobert</value>
<value>null</value>
</set>
</property>
<property name="map">
<map>
<entry key="mike" value="male"/>
<entry key="null" value="null"/>
</map>
</property>
<property name="prop">
<props>
<prop key="url">jdbc:mysql://localhost:3306/hello</prop>
<prop key="driver">com.mysql.jdbc.Driver</prop>
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>
</beans>
-
基于xml文件的注入
- 可以根據(jù)方法返回值牍颈、包言疗、類(lèi)、方法與方法的參數(shù)進(jìn)行過(guò)濾匹配颂砸,讓符合條件的類(lèi)或者方法,參數(shù)進(jìn)行動(dòng)態(tài)代理.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="st" class="com.qianfeng.aop04.Student" />
<bean id="my" class="com.qianfeng.aop04.MyAspect" />
<aop:config proxy-target-class="true">
<aop:pointcut id="pt" expression="execution(* com.qianfeng.aop04.*.*(..))"/>
<aop:advisor advice-ref="my" pointcut-ref="pt"/>
</aop:config>
</beans>
</--其中強(qiáng)制執(zhí)行動(dòng)態(tài)代理 aop.config-->
-
大話(huà)設(shè)計(jì)模式筆記
- 面向?qū)ο笕筇匦?封裝/繼承/多態(tài).文中的計(jì)算器封裝的優(yōu)勢(shì)是
封裝的優(yōu)點(diǎn)
1.良好的封裝能夠減少耦合噪奄。
2.類(lèi)內(nèi)部的結(jié)構(gòu)可以自由修改。
3.可以對(duì)成員變量進(jìn)行更精確的控制人乓。
4.隱藏信息勤篮,實(shí)現(xiàn)細(xì)節(jié)。
對(duì)程序員來(lái)說(shuō)色罚,使用封裝的目的:
1.偷懶碰缔,辛苦一次,后面都能少敲很多代碼戳护,增強(qiáng)了代碼得復(fù)用性
2.簡(jiǎn)化代碼金抡,看起來(lái)更容易懂
3.隱藏核心實(shí)現(xiàn)邏輯代碼,簡(jiǎn)化外部邏輯腌且,并且不讓其他人修改梗肝,jar 都這么干
4.一對(duì)一,一個(gè)功能就只為這個(gè)功能服務(wù)铺董;避免頭發(fā)繩子一塊用巫击,導(dǎo)致最后一團(tuán)糟.
- 圖稍等傳 簡(jiǎn)單工廠(chǎng)模式
/[/n今天是我在千鋒線(xiàn)上學(xué)習(xí)的第14天,武漢加油精续!]/