Spring中构造方法赋值方式

谁都会走 提交于 2020-03-01 08:37:48

1.context:component-scan作用

<context:component-scan base-package="com.jd"></context:component-scan>

扫描com.jd包及其子包下的所有类,并为添加了@Controller,@Service,@Component和@Repository修饰的类创建对象并存入IoC容器中。

2.Spring中构造方法赋值方式

public class UserInfo{
	public UserInfo(int age,String name) {
		System.out.println(age+","+name);
	}
	public UserInfo(Date birth) {
		System.out.println(birth);
	}
	
	public UserInfo(String[] mobiles) {
		for(String mobile : mobiles) {
			System.out.println(mobile);
		}
	}

	public UserInfo(List<Integer> ages) {
		for(Integer age : ages) {
			System.out.println(age);
		}
	}
	public UserInfo(Set<Date> birthdays) {
		for(Date birthday : birthdays) {
			System.out.println(birthday);
		}
	}
	public UserInfo(Map<String,Integer> maps) {
		for(String map : maps.keySet()) {
			System.out.println(map+","+maps.get(map));
		}
	}
	public UserInfo(Properties properties) {
		System.out.println(properties.getProperty("url"));
		System.out.println(properties.getProperty("username"));
		System.out.println(properties.getProperty("password"));
		System.out.println(properties.getProperty("driver"));
	}
}

如上代码,列举出了七种构造方法

  • 如何为不同类型赋值 

    基本数据类型+String直接使用value属性标签

<bean class="com.jd.vo.UserInfo">
    <constructor-arg type="java.lang.String" value="JAVA"></constructor-arg>
    <constructor-arg type="int" value="12"></constructor-arg>
</bean>
  •  自定义数据类型直接使用ref属性标签
<bean id="date" class="java.util.Date"></bean>
<!--自定义一个数据类型class-->


<bean class="com.jd.vo.UserInfo">
    <constructor-arg ref="date"></constructor-arg>
</bean>
<!--通过ref="id"获取-->
  • Array数据类型直接使用array属性标签 

<!--形式如
<bean class="类的路径">
    <constructor-arg>
        <array>
            <value></value>
            <value></value>
            <bean class="">
                <constructor-arg value=""></constructor-arg><!--为自定义数据类型-->
            </bean>
        </array>
    </constructor-arg>
</bean>
-->

<bean class="com.jd.vo.UserInfo">
    <constructor-arg>
        <array>
            <value>ads</value>
            <value>ada</value>
            <bean class="java.lang.String">
                <constructor-arg value="JAVA"></constructor-arg><!--为自定义数据类型-->
            </bean>
        </array>
    </constructor-arg>
</bean>
  • list数据类型使用list属性标签
<bean class="com.jd.vo.UserInfo">
    <constructor-arg>
        <list>
            <value>23</value>
            <value>44</value>
            <value>56</value>
        </list>
    </constructor-arg>
</bean> 
  • set数据类型使用set属性标签
<bean class="com.jd.vo.UserInfo">
    <constructor-arg>
        <set>
            <bean class="java.util.Date"></bean>
            <ref bean="date"/><!--再次用到自定义类型-->
        </set>
    </constructor-arg>
</bean> 
  • map数据类型使用map属性标签
<bean id="xj" class="java.lang.String">
    <constructor-arg value="xj"></constructor-arg>
</bean>

<!--自定义类型-->

<bean id="app" class="com.jd.vo.UserInfo">
    <constructor-arg>
        <map>
            <entry key="小明" value="12"></entry>
            <entry key-ref="xj" value="24"></entry>
        </map>
    </constructor-arg>
</bean> 
  • properties数据类型使用prop属性标签 
<bean  class="com.jd.vo.UserInfo">
    <constructor-arg>
        <props>
            <prop key="driver">com.mysql.jdbc.Driver</prop>
            <prop key="username">root</prop>
            <prop key="password">root</prop>
            <prop key="url">jdbc:mysql://localhost:3306</prop>
        </props>
    </constructor-arg>
</bean> 
<!--通过key值来匹配UserInfo类中的properties.getProperty("")-->

以上为Spring中构造方法赋值方式。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!