Spring 裝配Bean的構造注入
在spring裝配bean中還有一種Set注入的替代,那就是構造引數的注入。
set注入是一種直接方式,缺點是它假設了所 有的可變屬性都可以通過set方法訪問到。例如有些屬性在建立時設定一次,以後不再改變。替代方式是通過建構函式設定一些屬性值。還有它無法清晰表達哪些屬性是必須的,哪些是可選的,構造注入的優勢是通過構造強制依賴關係,不可能例項化不完全的或無法使用的bean。下面是構造器的幾種注入方式:
1.通過建構函式注入 (原始方式)
2.根據構造器引數的型別
3.根據索引index注入
4.根據引數名稱注入
EmployeeBean.java
public class EmployeeBean {
private String name;
private Double salary;
private Dept dept;
private String sex;
// 構造器函式
public EmployeeBean(String name, Double salary, Dept dept, String sex) {
super();
this.name = name;
this.salary = salary;
this.dept = dept;
this .sex = sex;
}
@Override
public String toString() {
return "EmployeeBean [name=" + name + ", salary=" + salary + ", dept="
+ dept + ", sex=" + sex + "]";
}
}
Dept.java
public class Dept {
private String name;
private String deptno;
public void setName(String name) {
this.name = name;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
@Override
public String toString() {
return "Dept [name=" + name + ", deptno=" + deptno + "]";
}
}
spring-constructor.java
<?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">
<!-- private String name; private Double salary; private Dept dept; -->
<!-- 0、通過建構函式注入 (原始方式)-->
<!-- <bean id="employeeBean" class="www.csdn.spring.constructor.bean.EmployeeBean">
<constructor-arg value="王曉而" />
<constructor-arg value="100.0" />
<constructor-arg ref="dept" />
<constructor-arg value="男" />
</bean> -->
<!-- 下面三種解決1存在的問題 -->
<!-- 1、根據構造器引數的型別 -->
<bean id="employeeBean" class="www.csdn.spring.constructor.bean.EmployeeBean">
<constructor-arg type="java.lang.String" value="陳紅均" />
<constructor-arg type="java.lang.String" value="男" />
<constructor-arg type="java.lang.Double" value="100.0" />
<constructor-arg type="www.csdn.spring.constructor.bean.Dept"
ref="dept" />
</bean>
<!-- 2、根據索引index注入 -->
<!-- <bean id="employeeBean" class="www.csdn.spring.constructor.bean.EmployeeBean">
<constructor-arg index="0" value="陳紅均" />
<constructor-arg index="1" value="100.0" />
<constructor-arg index="2" ref="dept" />
<constructor-arg index="3" value="女" />
</bean> -->
<!-- 3、根據引數名稱注入 -->
<!-- <bean id="employeeBean" class="www.csdn.spring.constructor.bean.EmployeeBean">
<constructor-arg name="name" value="陳紅均" />
<constructor-arg name="salary" value="100.0" />
<constructor-arg name="dept" ref="dept" />
<constructor-arg name="sex" value="男" />
</bean>-->
<bean id="dept" class="www.csdn.spring.constructor.bean.Dept">
<property name="name" value="CSDN教育事業部" />
<property name="deptno" value="0x0001" />
</bean>
</beans>
相關推薦
Spring 裝配Bean的構造注入
在spring裝配bean中還有一種Set注入的替代,那就是構造引數的注入。 set注入是一種直接方式,缺點是它假設了所 有的可變屬性都可以通過set方法訪問到。例如有些屬性在建立時設定一次,以後不再改變。替代方式是通過建構函式設定一些屬性值。還有它無法清晰表
Spring的《XML顯式裝配bean》- 注入List或則set
這一節主要講解spring注入list或則set型別的屬性 本blog舉的例子是:不同的廚師使用不同個烤爐製作出不同的蛋糕。 (1)domain 蛋糕類: package spring.ch1.topic11; /** * Created
spring裝配bean及引數注入
個人使用建議:不要使用3.2.4版本 因為在進行xml檔案載入的時候會出錯。 首先搭建環境 Student.java package com.demo.entity; public class Student { private String name;
Spring裝配bean--02通過Java代碼裝配bean
三方 應用 context his 單獨 stc ring -- oid Spring容器負責創建應用程序中的bean並通過DI來協調這些對象之間的關系 Spring提供了三種主要的裝配機制: 在XML中進行顯式配置 在Java中進行顯式配置 隱式
java之Spring裝配Bean(手動裝配、自動裝配、註解裝配)
fault tran 常見 成員 如果 on() base 反轉 tor 在上一篇控制反轉中我們看到了依靠一個Bean文件來實現對代碼的控制,可謂十分便捷,再也不用去實例化對象了,2333~~~ 1.手動裝配 1 <bean id="todo" class="
Spring 裝配Bean
spring 裝配bean spring裝配bean的三種機制 在XML中進行顯示配置 在Java中進行顯示配置 隱式的bean發現機制和自動裝配 自動化裝配bean Spring從兩個角度來實現自動化裝配 元件掃描:Spring會自動發現應用上下文中所建立的bean 自
Spring裝配Bean(基於XML)
通過XML裝配Bean 在Spring剛剛出現的時候,XML是描述配置的主要配置。隨著Spring的發展,自動化裝配和基於Java的配置成為了主流,但理解XML配置Bean是很有必
Spring裝配Bean(基於Java程式碼裝配)
通過Java配置裝配Bean 在很多的情況下,Spring基於組建掃描和自動裝配是最佳方式。但是有時候,我們必須使用顯示的裝配。例如,我們使用一個第三方庫,我們不可能為庫中的類添加註釋
Spring 裝配Bean 基於註解
註解:就是一個類,使用@註解名稱 開發時:我們使用註解 取代 xml配置檔案。 1 @Component取代<bean class=""> @Component(“id”) 取代 <
spring中Bean的注入(1)
Bean的注入包含的內容: XML注入 構造方法注入、靜態工廠注入、例項工廠注入,屬性注入的幾種方式(構造方法注入,set方法注入,p名稱空間注入,物件,集合、陣列、Map,Properties) Java注入:@Configuration、@Bean 自動注入:
在spring的bean中注入內部類
在spring中注入內部類,有可能會遇到如下異常資訊: 2014-5-1421:52:45 org.springframework.context.support.AbstractApplicationContext prepareRefresh 資訊:Refreshing org.springframe
Spring的bean中注入內部類
在spring中注入內部類,有可能會遇到如下異常資訊: 2014-5-14 21:52:45 org.springframework.context.support.AbstractApplicationContext prepareRefresh 資訊: Refreshi
spring裝配Bean過程以及Bean例項化過程
<ol class="linenums" style="margin:0px; word-wrap:break-word; padding:0px 0px 0px 40px"><li class="L0" style="word-wrap:break-word; padding-left:
學習Spring中Bean的注入
現在細化一下關於Bean的三種裝配方式 1.自動裝配 (1)註解解釋 首先有這麼幾個註解: @Component : 這個註解標識在一個類上,用來表明該類是一個元件,可以被注入Spring容器中。 @Configration: 註解在類上,表明這
Spring之Bean的注入
Bean的配置中介紹的是Bean宣告問題,在哪宣告怎麼宣告的問題。Bean的注入是怎麼例項化,怎麼注入的問題。Bean注入的方式有兩種,一種是在XML中配置,另一種則是使用註解的方式注入。 一、XML方式注入 XML方式注入一般有三種方式:屬性注入、建構函式注入和工廠方法注入。 一、屬性注入在傳統的物件例項化
Spring4 實戰筆記(1):裝配bean—依賴注入的本質
這種字串形式的表示雖然可以,但是不具備“型別安全”,因此Spring也提供了更加型別安全的機制,即通過類或者介面來設定掃描機制的目標目錄,例如: @Configuration @ComponentScan(basePackageClasses = {CDPlayer.class, DVDPlayer.cl
Spring用bean.xml注入物件
Spring的物件注入 寫一個類 public class Circle { @Override public String toString() { return "Circle [radius=" + radius +
Spring裝配Bean -- 通過Java程式碼裝配Bean
建立可被發現的Bean: 建立CD介面:package main.java.Demo1; /** * @author [email protected] * @date 18-4-15 下午6:53 */ public interface C
Spring裝配bean的三種方式
spring裝配bean有顯式和隱式兩種: 1.顯式的配置: 1).通過javaConfig來配置(@Configuration和@Bean結合)
Spring裝配bean的3種方式
記錄自己學習Spring的歷程,參考書:spring in action首先自建一個SpringMVC專案;自建專案過程中遇到兩個eclipse的問題:1. 建立maven專案,但是沒有webContent檔案 右鍵專案-》Properties-》Proj