ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring学习记录--IOC(2)

2020-01-20 21:41:12  阅读:199  来源: 互联网

标签:name 记录 Spring age Person void hobby IOC public


希望年后可以找到工作(= ——=)

IOC–Bean

配置管理Bean的时候需要注意:

 <bean name="dateFactory" class="Factory.MySimpleFactory" ></bean>

以上格式默认采用默认无参构造方法生成Bean,若配置有其他构造方法,且没有写无参构造方法,则创建Bean失败,运行时加载xml配置阶段报错。

如:需要用自定义构造函数,写法如下

public class Person {
    String name;
    int age;
    List<String> hobby;
    Map<String,List<String>> map;
//    public Entity.Person(){
//
//    }

    public Person(){

    }

    public Person(String _name,int _age){
        name=_name;
        age=_age;
    }
    public Person(String _name,int _age,Map<String,String[]> _map){
        name=_name;
        age=_age;
    }
    public Person(String _name,int _age,List<String> _hobby){
        name=_name;
        age=_age;
        hobby=_hobby;
    }


    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setHobby(List<String> hobby) {
        this.hobby = hobby;
    }

    public void setMap(Map<String, List<String>> map) {
        this.map = map;
    }

    public void say(){
        System.out.println("hello");
    }
    public void sayName(){
        System.out.println("my name is "+name);
    }

    public void sayHobby(){
        System.out.println(hobby);
    }

    public void OpenMap(String a){
        System.out.println(map.get(a));
    }

    public void init(){
        System.out.println("after init "+name);
    }

    private void PreDestory(){
        System.out.println("before destory "+name);
    }
}
<bean name="iocBean1" class="Entity.Person">
                <constructor-arg name="_age" value="10"></constructor-arg>
                <constructor-arg name="_name" value="wuyifan"></constructor-arg>
                <constructor-arg name="_hobby">
                        <list>
                                <value>吃饭</value>
                                <value>打游戏</value>
                                <value>补番</value>
                        </list>
                </constructor-arg>
                <property name="map">
                        <map>
                                <entry key="taobao">
                                        <list>
                                                <value>淘宝</value>
                                                <value>淘宝</value>
                                        </list>
                                </entry>
                        </map>
                </property>
        </bean>

上方Person类的无参构造函数被注释掉了,此时根据想使用的构造函数的参数配置Bean的相关参数
如下:

<bean name="iocBean1" class="Entity.Person">
                <constructor-arg name="_age" value="10"></constructor-arg>
                <constructor-arg name="_name" value="wuyifan"></constructor-arg>
</bean>

配置方式

1.通过参数名配置参数

<constructor-arg name="_age" value="10"></constructor-arg>`

2.通过参数位置,起始为0

<constructor-arg index="0" value="10"></constructor-arg>

注意事项:参数为集合类型(Object[] , List<?>,set)时,参数使用标签

<constructor-arg index="0" >
	 <list>
                                <value>吃饭</value>
                                <value>打游戏</value>
                                <value>补番</value>
     </list>
</constructor-arg>

参数为其他Bean时(Date、HashMap、自定义类型……)

<constructor-arg name="_age" ref="BeanId"></constructor-arg>
云起涟漪 发布了3 篇原创文章 · 获赞 0 · 访问量 42 私信 关注

标签:name,记录,Spring,age,Person,void,hobby,IOC,public
来源: https://blog.csdn.net/weixin_45404299/article/details/104055364

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有