Day14spring中集合框架的注入

分别对五种"集合"的注入

  • 随笔

切点就是具体的方法
冒泡排序口诀:外层循环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天,武汉加油!]/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。