1. 程式人生 > >spring的配置和使用

spring的配置和使用

oem struct methods lar for tle 所有 方法名 應該

spring的配置和使用

1. 創建基於java的配置。

配置極少量的XML來啟用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"
xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan
base-package="com.springinaction.springidol" />
</beans>

<context:component-scan>除了知道如何自動註冊那些使用某種構造型(stereotype)的註解所標註的Bean,它也會自動加載使用 @Configuration註解所標註的類。在上面的配置中,base-package屬性告知Spring在com.springinaction.spring-idol包內查找使用@Configuration註解所標註的所有類。

2. 定義一個配置類

在基於java的配置裏使用@Configuration註解的java類,就等價於XML配置中的<beans>元素,如下所示:

package com.springinaction.springidol;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringIdolConfig {
// Bean declaration methods go here
}

@Configuration註解會作為一個標識告知Spring:這個類將包含一個或多個Spring Bean的定義。這些Bean的定義是使用@Bean註解所標註的方法。接下來使用@Bean來裝配使用Spring基於java的配置所聲明的Bean。

3. 聲明一個簡單的Bean

使用@Bean註解標註一個方法來定義duke Bean:

@Bean
public Performer duke() {
return new Juggler();
}

上面的配置等價於之前使用XML所配置的<bean>元素。@Bean告知Spring這個方法將返回一個對象,該對象應該被註冊為Spring應用上下文中的一個Bean。方法名將作為該Bean的ID。在該方法中所實現的所有邏輯本質上都是為了創建Bean。

4. 使用Spring的基於java的配置進行註入。

之前,在XML配置文件中使用構造方法註入,使用<constructor-arg>元素來創建同時拋出15個的雜技師。而使用基於java的配置,只需要把數字直接傳人構造器中:

@Bean
public Performer duke15() {
return new Juggler(15);
}

Setter方法註入也是自然的java代碼:

@Bean
public Performer kenny() {
Instrumentalist kenny = new Instrumentalist();
kenny.setSong("Jingle Bells");
return kenny;
}

上面展示的是基於java配置的對於簡單值的構造器註入和Setter方法註入。接下來說明Bean是如何裝配另一個Bean的引用的。

首先用java聲明一個sonnet29 Bean:

@Bean
private Poem sonnet29() {
return new Sonnet29();
}

這是一個簡單的基於java的Bean的聲明。

接下來創建一個PoeticJuggler Bean,通過構造器為它裝配sonnet29 Bean:

@Bean
public Performer poeticDuke() {
return new PoeticJuggler(sonnet29());
}

上面就是通過引用其他Bean的方法來裝配Bean的引用。

在Spring的java配置中,通過聲明方法引用一個Bean並不等同於調用該方法。

通過使用@Bean註解標註sonnet29()方法,會告知Spring我們希望該方法定義的Bean要被註冊進Spring的應用上下文中。因此,在其他Bean的聲明方法中引用這個方法時,Spring都會攔截該方法的調用,並嘗試在應用上下文中查找該Bean,而不是讓方法創建一個新的實例。

轉載自 https://www.cnblogs.com/longshiyVip/p/4596423.html

spring的配置和使用