中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring的bean管理(注解方式)

發布時間:2020-08-10 22:01:20 來源:網絡 閱讀:11218 作者:叫我北北 欄目:開發技術
1.Spring的Bean管理的中常用的注解
@Component:組件.(作用在類上)
public interface UserDao {
    public void sayHello();
}
 
@Component(value="userDao")
    public class UserDaoImpl implements UserDao {
 
@Override
public void sayHello() {
    System.out.println("Hello Spring Annotation...");
}

Spring中提供@Component的三個衍生注解:(功能目前來講是一致的)

* @Controller :WEB

* @Service :業務層

* @Repository :持久層

 

這三個注解是為了讓標注類本身的用途清晰,Spring在后續版本會對其增強

spring的bean管理(注解方式) 

2.屬性注入的注解:(使用注解注入的方式,可以不用提供set方法.)

@Value  :用于注入普通類型.

@Autowired :自動裝配:

* 默認按類型進行裝配.

* 按名稱注入:

* @Qualifier:強制使用名稱注入.

@Resource相當于:

* @Autowired和@Qualifier一起使用.

spring的bean管理(注解方式)

3.Bean的作用范圍的注解:

@Scope:

* singleton:單例

* prototype:多例

4.Bean的生命周期的配置:

@PostConstruct :相當于init-method

@PreDestroy  :相當于destroy-method

    @PostConstruct說明

         @PostConstruct修飾的方法會在服務器加載Servlet的時候運行,并且只會被服務器調用一次,類似于Sercletinti()方法。@PostConstruct修飾的方法會在構造函數之后,init()方法之前運行。

    @PreConstruct說明

         @PreConstruct修飾的方法會在服務器卸載Servlet的時候運行,并且只會被服務器調用一次,類似于Servletdestroy()方法。@PreConstruct修飾的方法會在destroy()方法之后運行,在Servlet被徹底卸載之前。

 

05.SpringBean管理的方式的比較:

spring的bean管理(注解方式) 

 

XML和注解:

* XML :結構清晰.

* 注解 :開發方便.(屬性注入.)

 

實際開發中還有一種XML和注解整合開發:

* BeanXML配置.但是使用的屬性使用注解注入


關于注解1:工作中有一次犯了一個很嚴重的問題:

spring的bean管理(注解方式)

關于注解2:想要兩個類使用同一個變量,而且兩個類有關系,通過注入方式建立兩個類的對象產生關系。但是如果想要共用一個對象,建立對象可以通過有參構造傳入(new A("xxx")),但是注解建立對象我不會傳參。但可以通過配置文件和注解相結合使用。

spring的bean管理(注解方式)

第二張圖演示了properties文件屬性的使用方法,在工作中,又遇見另外一種(在這里演示)

首先,在spring的主配文件中要配置:

<!-- 加載applicationConfig.properties文件,獲取屬性文件的內容 -->
	<bean id="propertyConfigurer" class="com.ad.utils.GlobalProperties">
		<property name="ignoreResourceNotFound" value="true" />
		<property name="locations">
			<list>
				<value>classpath:applicationConfig.properties</value>
				......
			</list>
		</property>
	</bean>

然后寫出實現類:

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 自定義PropertyPlaceholderConfigurer返回properties內容
 * 
 */
public class GlobalProperties extends PropertyPlaceholderConfigurer{

	private static Map<String, Object> ctxPropertiesMap;

	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,Properties props) throws BeansException {
		
		super.processProperties(beanFactoryToProcess, props);
		ctxPropertiesMap = new HashMap<String, Object>();
		for (Object key : props.keySet()) {
			String keyStr = key.toString();
			String value = props.getProperty(keyStr);
			ctxPropertiesMap.put(keyStr, value);
		}
	}

	public static Object getContextProperty(String name) {
		return ctxPropertiesMap.get(name);
	}
	
	/**
	 * 獲取屬性值
	 * @param key
	 * @return
	 */
	public static String getProperties(String key){ 
		Object value = ctxPropertiesMap.get(key);
		return value != null ? String.valueOf(value) : "";
	}
	
	 
	/**
	 *獲取屬性值,返回×××
	 * @param key
	 * @return
	 */
	public static Integer getInteger(String key){
		Object value = ctxPropertiesMap.get(key);
		return value != null ? Integer.valueOf(value.toString()) : 0;
	}

}

最后是使用方法:

GlobalProperties.getProperties("XXXXX").trim();


補:spring的bean管理xml方式

01.注入對象類型屬性

    創建service類和dao

    service中得到dao對象

spring的bean管理(注解方式)




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽源市| 定兴县| 浦江县| 泗洪县| 永修县| 大同市| 天祝| 怀安县| 康平县| 潼关县| 华安县| 岑溪市| 汝州市| 阿坝县| 瑞安市| 文安县| 项城市| 长子县| 宁城县| 桓仁| 裕民县| 永胜县| 南木林县| 怀柔区| 南郑县| 渝中区| 晋州市| 河北省| 合山市| 渑池县| 特克斯县| 台南县| 吴旗县| 安远县| 松阳县| 商洛市| 丽水市| 庄浪县| 新泰市| 乌苏市| 株洲县|