1. 程式人生 > >Spring的IOC註解方式實現

Spring的IOC註解方式實現

1. 步驟一:匯入註解開發所有需要的jar包

* 引入IOC容器必須的6個jar包

* 多引入一個:Spring框架的AOP的jar包,spring-aop的jar包

2. 步驟二:建立對應的包結構,編寫Java的類

* UserService                        -- 介面

* UserServiceImpl                -- 具體的實現類

3. 步驟三:在src的目錄下,建立applicationContext.xml的配置檔案,然後引入約束。注意:因為現在想使用註解的方式,那麼引入的約束髮生了變化

* 需要引入context的約束,具體的約束如下

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->

</beans>

4. 步驟四:在applicationContext.xml配置檔案中開啟元件掃描

* Spring的註解開發:元件掃描

<context:component-scan base-package="要掃描包的全路徑名"/>

* 注意:可以採用如下配置

<context:component-scan base-package="com.xxxx"/> 會掃描以com.xxxx包名開頭的包

5. 步驟五:在UserServiceImpl的實現類上添加註解

* @Component(value="userService")        -- 相當於在XML的配置方式中 <bean id="userService" class="...">

6. 步驟六:編寫測試程式碼

public class SpringDemo1 {

@Test

public void run1(){

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

UserService us = (UserService) ac.getBean("userService");

us.save();

}

}

**Spring框架中Bean管理的常用註解**

1. @Component:元件.(作用在類上)

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

* @Controller                -- 作用在WEB層

* @Service                        -- 作用在業務層

* @Repository                -- 作用在持久層

* 說明:這三個註解是為了讓標註類本身的用途清晰,Spring在後續版本會對其增強

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

* 如果是注入的普通型別,可以使用value註解

* @Value                        -- 用於注入普通型別

* 如果注入的是物件型別,使用如下註解

* @Autowired                -- 預設按型別進行自動裝配

* 如果想按名稱注入還需要新增下面的註解

* @Qualifier        -- 強制使用名稱注入

* @Resource (推薦使用)                               -- 相當於@Autowired和@Qualifier一起使用

* 強調:這是Java提供的註解,不是spring中的註解

* 屬性使用name屬性指定注入的物件

**Bean的作用範圍和生命週期的註解**

1. Bean的作用範圍註解

* 註解為@Scope(value="prototype"),作用在類上。值如下:

* singleton                -- 單例,預設值

* prototype                -- 多例

2. Bean的生命週期的配置(瞭解)

* 註解如下:

* @PostConstruct        -- 相當於init-method

* @PreDestroy                -- 相當於destroy-method

**Spring框架整合JUnit單元測試**

1. 為了簡化了JUnit的測試,使用Spring框架也可以整合測試

2. 具體步驟

* 要求:必須先有JUnit的環境(即已經匯入了JUnit4的開發環境)!

* 步驟一:在程式中引入:spring-test.jar

* 步驟二:在具體的測試類上添加註解

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext.xml")  //載入spring的配置檔案

public class SpringDemo1 {

@Resource(name="userService")

private UserService userService;

@Test

public void demo2(){

userService.save();

}

}