8. Spring 註解開發(原始註解)2
阿新 • • 發佈:2021-06-23
註解 |
說明 |
@Component |
使用在類上用於例項化Bean |
@Controller |
使用在web層類上用於例項化Bean |
@Service |
使用在service層類上用於例項化Bean |
@Repository |
使用在dao層類上用於例項化Bean |
@Autowired |
使用在欄位上用於根據型別依賴注入 |
@Qualifier |
結合@Autowired一起使用用於根據名稱進行依賴注入 |
@Resource |
相當於@Autowired+@Qualifier,按照名稱進行注入 |
@Value |
注入普通屬性 |
@Scope |
標註Bean的作用範圍 |
@PostConstruct |
使用在方法上標註該方法是Bean的初始化方法 |
@PreDestroy |
使用在方法上標註該方法是Bean的銷燬方法 |
上面那篇文章說過如何用註解 例項化 Bean 和 注入引用資料型別
下面介紹其他幾個
1.value 進行普通引數的注入:
public class Demo { @Value("Hello,World!") private String parameter; @Test public void test(){ System.out.println(parameter); } }
這樣會輸出null 因為沒有Spring的參與 他是不會註解的。
我們嘗試弄一個Service + ServiceImpl 做實驗:【記得Spring配置檔案中配置掃描註解的標籤】
Service.java :
package com.Service; public interface TestService { public void show(); }
ServiceImpl.java :
package com.ServiceImpl; import com.Service.TestService; import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Service; @Service("service") public class TestServiceImpl implements TestService { @Value("HelloWorld!") //普通注入引數 private String parameter; @Override public void show() { System.out.println(parameter); } }
Demo.java :
import com.ServiceImpl.TestServiceImpl; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Demo { @Test public void test(){ ApplicationContext app = new ClassPathXmlApplicationContext("app.xml"); TestServiceImpl bean = (TestServiceImpl) app.getBean("service"); bean.show(); } }
列印:
資訊: Loading XML bean definitions from class path resource [app.xml] HelloWorld!
那麼我們直接 String value = "HelloWorld" 不就完了了嗎 為什麼還要費那麼大力氣去用啊.
他還有個功能 比如 Spring匯入了一個properties 檔案 然後給Spring 配置檔案解析,然後我們可以在value註解中 ${} 直接獲取到 然後匯入。
自己去試試:
類似於:@Value("${name}")
然後:
然後:
後面那幾個自己去試試 即可 很好玩的
.