设为首页 加入收藏

TOP

Spring的配置、依赖注入、Bean的自动装配及注解开发(一)
2023-07-25 21:43:41 】 浏览:96
Tags:Spring 赖注入 Bean 解开发

Spring配置

1. 别名

alias 设置别名 , 为bean设置别名 , 可以设置多个别名

<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>

2. Bean的配置

<!--bean就是java对象,由Spring创建和管理-->

<!--
    id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符
    如果配置id,又配置了name,那么name是别名
    name可以设置多个别名,可以用逗号,分号,空格隔开
    如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;

    class是bean的全限定名=包名+类名
-->
<bean id="hello" name="hello2 h2,h3;h4" class="com.kuang.pojo.Hello">
    <property name="name" value="Spring"/>
</bean>

3. import

团队的合作通过import来实现 .

<import resource="{path}/beans.xml"/>

依赖注入(DI)

  • 依赖注入(Dependency Injection,DI)。
  • 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .
  • 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .

1 构造器注入

在上一篇博客已经详细讲过了

2 set注入 (重点)

要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .

测试pojo类 :

Address.java

public class Address {
  private String address;
  public String getAddress() {     return address;   }
  public void setAddress(String address) {     this.address = address;   } }

Student.java

package com.hang.pojo;
import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set;
public class Student {   private String name;   private Address address;   private String[] books;   private List<String> hobbys;   private Map<String,String> card;   private Set<String> games;   private String wife;   private Properties info;
  public void setName(String name) {     this.name = name;   }
  public void setAddress(Address address) {     this.address = address;   }
  public void setBooks(String[] books) {     this.books = books;   }
  public void setHobbys(List<String> hobbys) {     this.hobbys = hobbys;   }
  public void setCard(Map<String, String> card) {     this.card = card;   }
  public void setGames(Set<String> games) {     this.games = games;   }
  public void setWife(String wife) {     this.wife = wife;   }
  public void setInfo(Properties info) {     this.info = info;   }
  public void show(){     System.out.println("name="+ name       + ",address="+ address.getAddress()       + ",books="     );     for (String book:books){       System.out.print("<<"+book+">>\t");     }     System.out.println("\n爱好:"+hobbys);     System.out.println("card:"+card);     System.out.println("games:"+games);     System.out.println("wife:"+wife);     System.out.println("info:"+info);   } }

2、1 常量注入

<bean id="student" class="com.kuang.pojo.Student">
    <property name="name" value="小明"/>
</bean>

测试:

@Test
public void test01(){
  ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  Student student = (Student) context.getBean("student");
  System.out.println(student.getName());
}

2、2 Bean注入

注意点:这里的值是一个引用,ref

<bean id="addr" class="com.kuang.pojo.Address">
  <property name="address" value="重庆"/>
</bean>
<bean id="student" class="com.kuang.pojo.Student">   <property name="name" value="小明"/>   <
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一口气说出 6 种实现延时消息的方.. 下一篇try...catch中finally子句的使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目