亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

札达县| 天柱县| 沙洋县| 天峻县| 安泽县| 离岛区| 增城市| 汾阳市| 房产| 全州县| 固阳县| 汝城县| 青海省| 秭归县| 柞水县| 扬州市| 钟祥市| 琼海市| 潼南县| 江川县| 门源| 内江市| 布尔津县| 尼勒克县| 称多县| 陇南市| 枝江市| 张家界市| 进贤县| 中宁县| 洛宁县| 建昌县| 南开区| 南江县| 佛教| 荔浦县| 敖汉旗| 明星| 襄城县| 县级市| 闸北区|