91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

咸丰县| 淳安县| 沂南县| 依安县| 贞丰县| 托里县| 雷山县| 通海县| 宜兴市| 阿勒泰市| 仁寿县| 旺苍县| 星子县| 股票| 资溪县| 舟曲县| 忻州市| 儋州市| 任丘市| 望江县| 唐河县| 临高县| 秦皇岛市| 义马市| 华容县| 南澳县| 青海省| 永胜县| 汉川市| 政和县| 呼伦贝尔市| 米林县| 宣恩县| 涟水县| 祥云县| 百色市| 曲沃县| 儋州市| 高邑县| 南澳县| 社会|