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>