依赖注入5(配置文件各种类型的属性注入)

本文介绍了一个使用Spring框架进行依赖注入的例子,包括定义JavaBean类、配置文件及测试类等部分。展示了如何通过XML配置文件实现不同类型的依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.javabean

 

package com.bean;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class Hello {

 private String hello;
 private User user;
 private String[] array;
 private List<String> list;
 private Set<String> set;
 private Map<String,String> map;
 private Properties info;
 private String kong;
 public User getUser() {
  return user;
 }
 public void setUser(User user) {
  this.user = user;
 }
 public String getKong() {
  return kong;
 }
 public void setKong(String kong) {
  this.kong = kong;
 }
 public Set<String> getSet() {
  return set;
 }
 public void setSet(Set<String> set) {
  this.set = set;
 }
 public Properties getInfo() {
  return info;
 }
 public void setInfo(Properties info) {
  this.info = info;
 }
 public Map<String, String> getMap() {
  return map;
 }
 public void setMap(Map<String, String> map) {
  this.map = map;
 }
 public String getHello() {
  return hello;
 }
 public void setHello(String hello) {
  this.hello = hello;
 }
 public String[] getArray() {
  return array;
 }
 public void setArray(String[] array) {
  this.array = array;
 }
 public List<String> getList() {
  return list;
 }

 public void setList(List<String> list) {
  this.list = list;
 }
 public void show() {
  System.out.println("hello="+hello);
  System.out.println("username="+user.getUsername()+"\t"+"password="+user.getPassword());
  for(int i=0;i<array.length;i++)
  {
   System.out.println("list"+i+"="+array[i]);
  }
  System.out.println("list="+list);
  System.out.println("set="+set);
  System.out.println("map="+map);
  System.out.println("info="+info);
  System.out.println("kong="+kong);
 }
}

 

2.javabean

package com.bean;

public class User {

 private String username;
 private String password;
 public User(){}
 public User(String username1,String password1)
 {
  username=username1;
  password=password1;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 @Override
 public String toString() {
  return "User [username=" + username + ", password=" + password + "]";
 }
}

 

3.配置文件

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

  <bean id="user" class="com.bean.User">
   <property name="username" value="wyj"/>
   <property name="password" value="123456"/>
  </bean>
  <bean id="hello" class="com.bean.Hello" scope="prototype">
   <property name="hello" value="wyj"/>
   <property name="user" ref="user"></property>
   <property name="array">
    <array>
     <value>wyj</value>
     <value>zy</value>
    </array>
   </property>
   <property name="list">
    <list>
     <value>wyj</value>
     <value>zy</value>
    </list>
   </property>
   <property name="set">
    <set>
     <value>王者</value>
     <value>吃鸡</value>
    </set>
   </property>
   <property name="map">
    <map>
     <entry key="0" value="zy"/>
     <entry>
      <key><value>1</value></key>
      <value>wyj</value>
     </entry>
    </map>
   </property>
   <property name="info">
    <props>
     <prop key="姓名">wyj</prop>
     <prop key="性别">女</prop>
     <prop key="学校">******</prop>
    </props>
   </property>
   <property name="kong"><null/></property>
  </bean>
  
  <!-- 通过p命名注入值 -->
  <bean id="user2" class="com.bean.User" p:username="wyj" p:password="123"></bean>
  <!-- c命名注入 注意:要有对应的构造函数,且c:后面的是参数的名字,不是属性名 -->
  <bean id="user3" class="com.bean.User" c:username1="wyj" c:password1="123"></bean>
</beans>

 

4.测试类


 

package com.Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.bean.Hello;
import com.bean.User;

public class Test1 {

 //控制反转
 //控制:指谁来控制对象的创建,spring来创建对象
 //反转:程序本身不创建对象,而是变成被动的接受spring创建好的对象
 //正转:在程序中主动创建对象
 public static void  main(String[] arges) {
  
  ApplicationContext context=new ClassPathXmlApplicationContext("config.xml");
  Hello hello=(Hello) context.getBean("hello");
  //如果配置文件中没有id和name,可用下面的方法
  //Hello hello=context.getBean(Hello.class);
  hello.show();
  //通过p命名注入参数
  User user=(User) context.getBean("user2");
  System.out.println(user);
  User user3=(User) context.getBean("user3");
  System.out.println(user3);
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值