Spring框架-3(IOC下)
Spring系列文章
Spring框架-1(基礎)
Spring框架-2(IOC上)
Spring框架-3(IOC下)
Spring框架-4(AOP)
Spring框架-5(JDBC模板&Spring事務管理)
Spring框架-6(SpringMvc)
Spring框架-7(搭建SSM)
Spring框架-8(SpringMVC2)
上一篇文章使用的XML配置的方法使用Spring的IOC功能。如果Spring每一個類都需要這麼麻煩的配置,做起專案來那不累死頭牛?所以我們分析一下使用註解的方式來實現。
首先先看下我們需要分析一些什麼東西,如下圖:
註解方式的實現
1.在applicationContext.xml配置檔案中開啟元件掃描
- Spring的註解開發:元件掃描
<context:component-scan base-package="com.zhong.springdemo"/>
- 注意:可以採用如下配置,這樣是掃描com.itheima包下所有的內容
<context:component-scan base-package="com.zhong"/>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:contex="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<contex:component-scan base-package="com.zhong.springdemo"/>
</beans>
在使用物件中加上註解
@Component(value="userController") -- 相當於在XML的配置方式中 <bean id="userService" class="...">
//將這個類交個spring管理
@Component("userController")
public class MyController {
//通過spring把myService注入到這個資源內
@Autowired
private MyService myService;
//測試
public void test() {
myService.showTest();
}
}
//將這個類交個spring管理
@Component("userService")
public class MyService {
//注入一個屬性
@Value("這是一個測試語句")
private String textStr;
//列印注入的屬性值
public void showTest() {
System.out.println(textStr);
}
}
編寫測試程式碼
public static void main(String[] args) {
// 使用Spring的工廠
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 通過工廠獲得類:
MyController myController = (MyController) applicationContext.getBean("userController");
myController.test();
}
- 執行結果:
這是一個測試語句
到這就說明我們的註解方式使用成功了。
總結
Bean管理的常用註解
@Component:元件.(作用在類上)
Spring中提供@Component的三個衍生註解:(功能目前來講是一致的)
@Controller -- 作用在WEB層
@Service -- 作用在業務層
@Repository -- 作用在持久層
說明:這三個註解是為了讓標註類本身的用途清晰,Spring在後續版本會對其增強
- 屬性注入的註解(說明:使用註解注入的方式,可以不用提供set方法)
-
如果是注入的普通型別,可以使用value註解
@Value -- 用於注入普通型別
-
如果注入的是物件型別,使用如下註解
@Autowired -- 預設按型別進行自動裝配
-
如果想按名稱注入
@Qualifier -- 強制使用名稱注入
@Resource -- 相當於@Autowired和@Qualifier一起使用
強調:Java提供的註解 屬性使用name屬性
Bean的作用範圍和生命週期的註解
- Bean的作用範圍註解
註解為@Scope(value="prototype"),作用在類上。值如下:
singleton -- 單例,預設值
prototype -- 多例
- Bean的生命週期的配置(瞭解)
註解如下:
@PostConstruct -- 相當於init-method
@PreDestroy -- 相當於destroy-method
好了看到這,我們的IOC暫時基礎學完了,下一篇文章我們來分析AOP吧!
相關文章
- Spring框架IOC容器Spring框架
- Spring框架之IOC介紹Spring框架
- Spring框架系列(3) - 深入淺出Spring核心之控制反轉(IOC)Spring框架
- Guice:Java IOC框架 挑戰SpringGUIJava框架Spring
- 手寫Spring ioc 框架,狠狠的“Spring 原始碼Spring框架原始碼
- Spring框架系列(7) - Spring IOC實現原理詳解之IOC初始化流程Spring框架
- spring,ioc模式與ejb3呼叫Spring模式
- Spring框架系列(6) - Spring IOC實現原理詳解之IOC體系結構設計Spring框架
- java Spring框架IOC和AOP的實現原理JavaSpring框架
- Spring - IOCSpring
- spring iocSpring
- IOC和DI的概念,以及Spring框架的介紹Spring框架
- Spring框架之IOC/DI(控制反轉/依賴注入)Spring框架依賴注入
- Spring AOP IOCSpring
- Spring-IOCSpring
- 簡易版的Spring框架之IOC簡單實現Spring框架
- Java必備乾貨:Spring框架之IOC的基本配置JavaSpring框架
- Spring原始碼剖析3:Spring IOC容器的載入過程Spring原始碼
- Spring IOC(6)BeanFactoryPostProcessor(3)摻雜@MapperScan原理分析SpringBeanAPP
- 仿寫一個簡陋的 IOC/AOP 框架 mini-spring框架Spring
- 【Java框架型專案從入門到裝逼】第一節 - Spring框架 IOCJava框架Spring
- 動態代理—IOC框架框架
- Spring--IOC容器Spring
- spring ioc和aopSpring
- Spring(IOC&DI)Spring
- Spring使用之IOCSpring
- Spring IOC XML配置SpringXML
- 初識Spring IoCSpring
- Spring的IOC容器Spring
- Spring IOC之神理解Spring
- 【Spring】IOC&DISpring
- Spring原始碼解析—— IOC預設標籤解析(下)Spring原始碼
- 【Java面試】介紹下Spring IoC的工作流程Java面試Spring
- 理解Spring(一):Spring 與 IoCSpring
- 死磕Spring之IoC篇 - 深入瞭解Spring IoC(面試題)Spring面試題
- 好程式設計師Java乾貨分享Spring框架之IOC原理程式設計師JavaSpring框架
- Spring IOC原始碼深度剖析:Spring IoC迴圈依賴問題Spring原始碼
- 徒手擼框架--實現IoC框架