Sping4之注入参数

Spring的依赖注入不仅可以注入基本类型,也可以注入包括model,list等等类型

package com.hongcong.test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.hongcong.model.People;

public class test {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ca = new  ClassPathXmlApplicationContext("beans.xml");
        //Bean注入
        People people1 = (People)ca.getBean("people1");
        System.out.println(people1);
        //内部bean
        People people2 = (People)ca.getBean("people2");
        System.out.println(people2);
        //null注入
        People people3 = (People)ca.getBean("people3");
        System.out.println(people3);
        //集合注入
        People people4 = (People)ca.getBean("people4");
        System.out.println(people4);

    }
}

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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dog" class="com.hongcong.model.Dog">
        <property name="name" value="Jack"/>
    </bean>

    <!--Bean注入  -->
    <bean id="people1" class="com.hongcong.model.People">
        <property name="id" value="1"/>
        <property name="name" value="小一"/>
        <property name="age" value="11"/>
        <property name="dog" ref="dog"></property>
    </bean>

    <!--内部bean  -->
    <bean id="people2" class="com.hongcong.model.People">
        <property name="id" value="1"/>
        <property name="name" value="小一"/>
        <property name="age" value="11"/>
        <property name="dog">
            <bean class="com.hongcong.model.Dog" >
                <property name="name" value="Tom"></property>
            </bean>
        </property>
    </bean>

    <!--null注入  -->
    <bean id="people3" class="com.hongcong.model.People">
        <property name="id" value="1"/>
        <property name="name" value="小一"/>
        <property name="age" value="11"/>
        <property name="dog" >
            <null></null>
        </property>
    </bean>

    <!--list注入  -->
    <bean id="people4" class="com.hongcong.model.People">
        <property name="id" value="1"/>
        <property name="name" value="小一"/>
        <property name="age" value="11"/>
        <property name="loves" >
            <list>
                <value>唱歌</value>
                <value>听歌</value>
            </list>
        </property>
    </bean>
</beans>

people

package com.hongcong.model;

import java.util.ArrayList;
import java.util.List;

public class People {
    private int id;
    private String name;
    private int age;
    private Dog dog;
    List<String> loves = new ArrayList<String>();

    public People() {
        super();
        // TODO Auto-generated constructor stub
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public Dog getDog() {
        return dog;
    }
    public void setDog(Dog dog) {
        this.dog = dog;
    }
    public List<String> getLoves() {
        return loves;
    }

    public void setLoves(List<String> loves) {
        this.loves = loves;
    }

    @Override
    public String toString() {
        return "People [id=" + id + ", name=" + name + ", age=" + age
                + ", dog=" + dog + ", loves=" + loves + "]";
    }

}

dog

package com.hongcong.model;

public class Dog {
    private String name;

    public String getName() {
        return name;
    }

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

}
时间: 2024-11-05 13:35:24

Sping4之注入参数的相关文章

Spring 依赖注入(二、注入参数)

注入参数基本分7类: 1.基本类型值 2.注入bean 3.内部bean 4.注入null值 5.级联属性 6.List,Set,Map集合的注入 7.properties文件的注入(和集合注入基本是一样的) 下面就是实体类People2,beans.xml的源码 package com.maya.model; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.u

Spring属性注入、构造方法注入、工厂注入以及注入参数(转)

Spring 是一个开源框架. Spring 为简化企业级应用开发而生(对比EJB2.0来说). 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring 是一个 IOC(DI) 和 AOP 容器框架. 具体描述 Spring:轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API控制反转(依赖注入) (IOC----inverse of control .DI --- dependenc

spring mvc 3.1的自动注入参数遇到的问题

在网上下载了xheditor作为页面的编辑器,编辑内容后post到后台保存,后台方法用spring mvc的自动注入的方式接收参数. 这种方式在各个浏览器下运行良好,但是在ie11下发现,从word.文本编辑器或者其它编辑器复制内容到xheditor后,这时提交到后台的参数不能被接收到. 仔细排查下发现ie11下复制到xheditor的内容都被默默的加了一段无用的div: <div style="top: 0px;"> </div> 此时用最原始的接收参数的方式

Spring 依赖注入(二、注入参数)

注入参数基本分7类: 1.基本类型值 2.注入bean 3.内部bean 4.注入null值 5.级联属性 6.List,Set,Map集合的注入 7.properties文件的注入(和集合注入基本是一样的) 下面就是实体类People2,beans.xml的源码 package com.maya.model; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.u

SpringMVC - 个人对@ModelAttribute的见解 和 一些注入参数、返回数据的见解

因为对modelattribute这个注解不了解,所以在网上搜寻一些答案,感觉还是似懂非懂的,所以便自己测试,同时还结合网上别人的答案:最后得出我自己的见解和结果,不知道正确否.同时还进行了一些注入参数的测试. 本人也是菜鸟一枚,在学习springmvc,下面的结果都是我自己测试得出来的,我也不能保证准确性,所以你发现有错误,欢迎指出. user是我创建的一个类,用于测试的,就四个属性,id.username.password.time @ModelAttribute 1.    modelat

spring中Bean的注入参数详解

字面值    一般指可用字符串表示的值,这些值可以通过<value>元素标签进行注入.在默认情况下,基本数据类型及其封装类.String等类型都可以采取字面值注入的方式,Spring容器在内部为字面值提供了编辑器,它可以将以字符串表示的字面值转换为内部变量的相应类型.    配置信息:    <bean id="car" class="com.luxl.domain.Car">        <property name="m

关于Spring注入参数到static静态参数失败问题处理。解决Autowired annotation is not supported on static fields的问题

直接贴代码 把注入参数的注解加到set方法上面去即可. 因为这是一个工具类用到的config,所以一开始没有加@Component,还是依然为空,加上之后就正常能注入了 原文地址:https://www.cnblogs.com/KAI0725/p/11328864.html

Spring基础学习(二)&mdash;注入参数详解

     在Spring配置文件中,用户不但可以将String.int等字面值注入Bean中,还可以将集合.Map等类型注入Bean中,此外还可以注入配置文件中其他定义的Bean. 一.字面值      (1)可用字符串表示的值,可以通过<value>元素标签或value属性进行注入.      (2)基本数据类型及其封装类.Stting类型都可以采用字面值注入的方式.      (3)若字面值包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起来. <bean id

mybatis运行时拦截ParameterHandler注入参数

在实现多租户系统时,每个租户下的用户,角色,权限,菜单都是独立的,每张表里都有租户Id字段 (tenantId),每次做数据库操作的时候都需要带上这个字段,很烦. 现在的需求就是在mybatis向sql设置参数时拦截,获取当前登录用户的tenantId,若参数的集合中没有 tenantId,将当前登录用户的tenantId 放到 sql参数的集合中, 这样就不必在业务代码中关心租户信息了. 具体的做法就是拦截ParameterHandler的 setParameters 方法, 将 tenant