Spring MVC 主要從Spring框架、Servlet、JSP這3個方面來講。
Java企業版技術包括JMS、EJB、JSF、JPA。
Java企業版容器:GlassFish、JBoss、Oracle、Weblogic、IBM WebSphere
Tomcat和Jetty不是企業版容器,所以不能運行EJB或JMS。
Spring一共有20多個不同的模塊,這里主要講了3個模塊:core、bean、springmvc。
core、bean提供依賴注入解決方案。
Spring有兩種配置方式:xml和注解的方式。這兩種方式都至少需要一個包含beans信息的xml文件。
【控制反轉】
ApplicationContext代表Spring控制反轉容器,有兩個實現類:
ClassPathXmlApplicationContext在類加載路徑中加載配置文件;
FileSystemXmlApplicationContext在文件系統中加載。
例如:
ApplicationContext context = new ClassPathXmlApplicationContext(new string[]{“config1.xml”,”config2.xml”}); Product product = context.getBean(“product”,Product.class);
創建bean實例的方法:
1、通過構造器創建一個bean實例;
<bean name=”product” class=”com.xsl.entity.Product” />
2、通過工廠方法創建一個bean實例。
<bean id=”calendar” class=”java.util.Calendar” factory-method=”getInstance” />
Destroy Method的使用:可以在類被銷毀之前能執行指定方法。
<bean id=”executorService” class=”java.util.concurrent.Executosr” factory-method=”new CachedTheadPool” destory-method=”shutdown” />
通過指定的class的這個靜態方法new CachedTheadPool,創建id為executorService的實例,最后在銷毀之前調用shutdown方法。
Spring也支持通過構造器來傳遞參數:
1、寫好實體類的構造方法;
2、在bean中配置好參數的值。(參數的標簽是< constructor-arg />,除了可以通過名稱name來傳遞參數外,還支持通過索引index來傳遞參數;但是采用索引來傳遞參數的話,所有參數都必須傳遞,缺一不可)
A類依賴B類,為保證每個A實例都能包含B實例。
<bean name=”b1” class=”com.xsl.entity.B”> <constructor-arg name=”city” value=”shenzhen” /> <constructor-arg name=”state” value=”yes” /> </bean>
1、setter方式依賴注入(使用<property />標簽)
<bean name=”a” class=”com.xsl.entity.A”> <property name=”b” ref=”b1” /> <property name=”price” value=”9.9” /> </bean>
2、構造器方式依賴注入
<bean name=”a” class=”com.xsl.entity.A”> <constructor-arg name=”b” ref=”b1” /> <constructor-arg name=”price” value=”9.9” /> </bean>