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();
}
}