分别对五种"集合"的注入
- 随笔
切点就是具体的方法
冒泡排序口诀:外层循环n-1,内层循环n-1-i.
将xml文件放到resources目录下
-
集合注入
- 使用数组、List、Set、Map与Properties五种数据类型的注入,Properties之前没有接触过简单介绍下
Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。该类继承与hashtable 在jdk中 Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串. 这个类是线程安全的.
- 引用数据类型都是使用ref方式进行赋值
//集合注入
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文件的注入
- 可以根据方法返回值、包、类、方法与方法的参数进行过滤匹配,让符合条件的类或者方法,参数进行动态代理.
<?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>
</--其中强制执行动态代理 aop.config-->
-
大话设计模式笔记
- 面向对象三大特性:封装/继承/多态.文中的计算器封装的优势是
封装的优点
1.良好的封装能够减少耦合。
2.类内部的结构可以自由修改。
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。
对程序员来说,使用封装的目的:
1.偷懒,辛苦一次,后面都能少敲很多代码,增强了代码得复用性
2.简化代码,看起来更容易懂
3.隐藏核心实现逻辑代码,简化外部逻辑,并且不让其他人修改,jar 都这么干
4.一对一,一个功能就只为这个功能服务;避免头发绳子一块用,导致最后一团糟.
- 图稍等传 简单工厂模式
/[/n今天是我在千锋线上学习的第14天,武汉加油!]/