1. 程式人生 > >Spring整合web開發(6)

Spring整合web開發(6)

Spring整合web開發

正常整合Servlet和Spring沒有問題的
但是每次執行Servlet的時候加載Spring配置,加載Spring環境.

  • 解決辦法:在Servlet的init方法中加載Spring配置文件?
    • 當前這個Servlet可以使用,但是其他的Servlet的用不了了!!!
    • 將加載的信息內容放到ServletContext中.ServletContext對象時全局的對象.服務器啟動的時候創建的.在創建ServletContext的時候就加載Spring的環境.
    • ServletContextListener:用於監聽ServletContext對象的創建和銷毀的.

導入;spring-web-3.2.0.RELEASE.jar

在web.xml中配置:

 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
 </context-param>

修改程序的代碼:

WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
WebApplicationContext applicationContext = (WebApplicationContext) getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

Spring集成JUnit測試

1.程序中有Junit環境.
2.導入一個jar包.spring與junit整合jar包.

  • spring-test-3.2.0.RELEASE.jar

3.測試代碼:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
public class SpringTest {
@Autowired
private UserService userService;

@Test
public void demo1(){
    userService.sayHello();
    }
}








(1)到(6)總結

Struts2:


Hibernate:知識點比較多.


Spring:AOP. 面向切面的思想.


Spring框架 IOC. AOP . 數據訪問 . 集成 . Web

  • IOC:控制反轉.將對象的創建權交給Spring.
  • DI:依賴註入.DI需要有IOC環境的,DI在創建對象的時候,將對象的依賴的屬性,一並註入到類中

IOC裝配Bean:(XML)

  • <bean id=”” class=””/>
  • 配置Bean其他的屬性:

    • init-method destroy-method scope
  • DI註入屬性:

    • 普通屬性:
      • <property name=”屬性名” value=”屬性值”>
    • 對象屬性:

      • <property name=”屬性名” ref=”其他類的id或name”>
    • 集合屬性的註入:

IOC裝配Bean:(註解)

@Component 描述Spring框架中Bean
@Repository 用於對DAO實現類進行標註
@Service 用於對Service實現類進行標註
@Controller 用於對Controller實現類進行標註

DI屬性註入

  • 普通屬性:
    • @Value
  • 對象屬性:
    • AutoWired
    • Resource

Bean的生命周期:

  • 後處理Bean.BeanPostProcessor類.

Spring整合Web項目:


Spring整合Junit測試:


Spring整合web開發(6)