Spring资源读取

    Spring对于依赖注入形式实际上有两个名词描述:IOC(控制反转)、DI(依赖注入),这两个的概念本质都是相同的,因为所有对象产生控制都要通过applicationContext.xml文件来实现
    必须要启动容器,而后才可以进行该配置文件的内部的加载操作;


    applicationContext.xml文件bean中可以通过以下形式实现注入
            <bean id="dept" class="cn.mldn.vo.Dept">
                <constructor-arg index="0" value="10"></constructor-arg>
                <constructor-arg index="1" value="开发部"></constructor-arg>
                <constructor-arg index="2" value"北京"></constructor-arg>
            </bean>

        constructor-arg用来反射有参构造,利用index来区分参数

            <property name="deptno" value="10"></property>
            <property name="dname" value="shuxing"></property>
            <property name="loc" value="北京"></property>

        property用来反射无参构造
        <properties>调用的是类中的属性,此时明确描述指定的属性设置内容("value"),也就是说会自动调节setter方法。

        通过Emp找到Dept   ref       
        <property name="dept" ref="dept"></property>

    p命名空间:
    更简单的注入做法:
    <bean id="emp" class="cn.mldn.vo.Dept" p:deptno="10" p:dname="haha" p:loc="北京"/>


    集合注入:
        List集合applicationContext.xml中集合注入
            array注入
            <property name="groups">
                <array value-type="java.lang.String">
                    <value>ERP项目组</value>
                    <value>CGM项目组</value>
                </array>
            </property>
            list注入
            <property name="groups">
                <list>
                    <value>ERP项目组</value>
                    <value>CGM项目组</value>
                </list>
            </property>
            set注入
            <property name="groups">
                <set>
                    <value>ERP项目组</value>
                    <value>CGM项目组</value>
                </set>
            </property>

        map注入
            <property name="groups">
                <map>
                    <entry key="120" value="CTR项目组1"></entry>
                    <entry key="120" value="TYU项目组2"></entry>
                    <entry key="120" value="TYU项目组3"></entry>
                    <entry key="120" value="TYU项目组4"></entry>
                    <entry>
                        <key><value>110</value></key>
                        <value>CRE项目组1</value>
                    </entry>
                </map>
            </property>
        map注入使用第二种方法注入的时候,value添加key不允许重复,不会覆盖,会出错


    使用properties进行配置
        <bean id="emp" class="cn.mldn.vo.Dept">
            <property name="groups">
                <props>
                    <prop key="110">EMP项目组</prop>
                    <prop key="120">CRM项目组</prop>
                </props>
            </property>
        </bean>



    基于Annotation的依赖注入配置
    必须要在applicationContext.xml文件里面追加上下文扫描配置包
    xmlns:context="http://www.springframework.org/schema/context"
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/contextspring-context-4.1.xsd"
    <context:annotation-config/>
    <context:component-scan base-package="cn.mldn"/>


    在整个Spring里面提供了集中注释(除了名字不一样,其他的都一样)

    【数据层】仓库配置类:@Repository (org.springframework.stereotype.Repository)
    【业务层】业务配置类:@Service(org.springframework.stereotype.Service)
    【工具组件】工具类配置:@Component(org.springframework.stereotype.Component)
    【控制层】控制层配置:@Controller(org.springframework.stereotype.Controller)



    @Resource用来激活一个明明资源的依赖注入





    Spring 资源读取

java IO中最为重要的一个借口五个类
    Serializable,outputStream,inputStream,Writer,Reader,File


Spring 里提供了对于资源的处理接口,org.springframework.core.io.Resource
在Resource接口里面提供了对于资源文件的处理方法
        方法名称        类型      方法描述
    1,public boolean exits()    普通      该资源是否存在
    2,public bong lastModified() throws IOException 普通  取得最后一次修改时间
    3,public InputStream getInputStram() throws IOException 普通  取得输入流对象

    但是Resource是一个借口,如果想要进行资源文件的数据读取,就需要一些子类来进行实例化
    内存读取(ByteArrayResource)
    CLASSPATH读取(ClassPathResource)
    文件读取(FileSystemResource)
    URL读取(UrlResource)
    WEB上下文读取(ServletContextResource)


    为了简化Resource接口的组员处理,专门定义类个接口Lorg.springframework.core.io.ResourceLoader
    根据指定的字符串加载指定的资源处理
    ResourceLoader是一个接口,可以使用org.springframework.core.io.DefaultResourceLoader子类实例化
    在getResource()方法里面可以接受一个表示资源路径的字符串数据,
    读取文件资源系统:   file:路径
    读取网络资源: http://路径
    CLASSPATH读取:classpath:路径


Resource通配符                                                                                                                                                 
    ?,*,**
    classpath:x/**/LISENSE*             找到x目录下的lisense x 文件
    <value>classpath:**/Test**</value>      找到任意目录下的Testxxx文件














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值