您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > j2ee架构与程序设计spring
J2EE架构与程序设计第四讲Spring观看示例代码HelloWorld观看Spring示例代码HelloWorld结论可以看到:我们的所有程序代码中(除测试代码之外),并没有出现Spring中的任何组件。greeting属性由Spring通过读取配置文件动态设置。客户代码(这里就是我们的测试代码)仅仅面向接口编程,而无需关注具体实现类。对于开发的帮助首先,我们的组件并不需要实现框架指定的接口,因此可以轻松的将组件从Spring中脱离,甚至不需要任何修改(这在基于EJB框架实现的应用中是难以想象的)。其次,组件间的依赖关系减少,极大改善了代码的可重用性。面向接口编程思考要实现类似的功能按传统的方式怎么实现?系统开发中最常见的需求,会导致我们的代码迅速膨胀。纵使苦心经营,往往也未必能得全功。而Spring的出现,则大大缓解了这样的窘境。通过对编码中常见问题的分解和抽象,Spring提供了一套成熟而全面的基础框架。随着本篇的进展,大家可以看到,上面这些开发中常见的问题在Spring框架中都提供了统一、妥善的处理机制,这为烦杂的应用开发提供了相当有力的支持。Spring主要特性非入侵框架提供了一种一致的,在任何环境下都可以使用的编程模型提高代码重用性控制反转IOCIOC也称为反向控制、依赖注入就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。例如:笔记本和U盘依赖注入的优势beansbeanid=dataSource“class=“Bpropertyname=jndiNamevaluejava:comp/env/jdbc/sample/value/property/beanbeanid=SampleDAOclass=“A“propertyname=dataSourcereflocal=dataSource//property/bean/beansBean标签属性Scope:默认时Spring以单例方式装载Bean,若要让每次装载获得一个新的Bean则可使用此属性Scope=singleton\prototypeBean标签属性Init-method和destroy-method:Bean可以实现InitializingBean和DisposableBean接口来实现初始化方法,也可由前述属性指定,若同时使用则先调用接口方法,后调用配置方法Bean标签属性ref:引用其它beanbeanid=greetingclass=chapter22.HelloServiceImplpropertyname=greetingvalue=麦克杰克逊/property/beanbeanid=myBeanclass=chapter22.MyBean”propertyname=hellorefbean=greeting//propertypropertyname=namevalue王敏德/value/property/bean装配集合属性Spring可以装配4种集合类型属性:List、Set、Map和Properties,对应标签分别是list、set、map、和props见chapter23.CollectionBean装配构造方法一个JavaBean的构造方法的参数可能有一个或者多个,此时需要使用constructor-arg标签来为这些构造方法设置相应的参数值。beanid=“myBean”class=“…”constructor-argindex=“1”valueMichael/value/constructor-argconstructor-argtype=“int”index=“0”value20/value/constructor-arg/beanConstructor-arg属性type:指定参数类型index:指定参数序号见chapter23.ConstructorBean分散配置如果一个应用的配置信息过多,最好的方式是把配置信息分散存储,如有两个配置文件a.xml和b.xml,则可以用下面的代码同时读取这两个装配文件中的装配信息:ApplicationContextcontext=newFileSystemXmlApplicationContext(newString[]{“a.xml”,”b.xml”})分散配置还可以将属性值分散到属性文件中,再通过占位符变量(${变量名})来读取这些属性值beanid=propertyConfigurerclass=org.springframework.beans.factory.config.PropertyPlaceholderConfigurerpropertyname=locationvaluesrc\MyBean.properties/value/property/bean见chapter23.MultiConfig属性编辑器若某属性是对象且需要从配置输入则可以使用属性编辑器见chapter23.TestPropertyEditorSpring和Hibernate集成编写一个Hibernate程序基本步骤如下1.至少需要一个用于映射实体Bean的.htm.xml文件2.需要一个Hibernate配置文件。3.需要建立Configuration对象来读取hibernate.cfg.xml中的配置4.需要建立SessionFactory对象来获得Session对象其中最后两步的操作可由MyEclipse自动生成的HibernateSessionFactory类替代配置sessionFactorybeanid=sessionFactory1class=org.springframework.orm.hibernate3.LocalSessionFactoryBeanpropertyname=hibernatePropertiespropspropkey=hibernate.dialectorg.hibernate.dialect.MySQLDialect/proppropkey=show_sqltrue/proppropkey=hibernate.cache.use_query_cachetrue/proppropkey=hibernate.cache.provider_classorg.hibernate.cache.HashtableCacheProvider/proppropkey=hibernate.connection.usernameroot/proppropkey=hibernate.connection.password1234/proppropkey=hibernate.connection.driver_classcom.mysql.jdbc.Driver/proppropkey=hibernate.connection.urljdbc:mysql://localhost/webdb?characterEncoding=UTF8/prop/props/propertypropertyname=mappingResourceslistvaluemapping.xml/value/list/property/beanSpring和Hibernate集成配置HibernateTemplatebeanid=hibernateTemplateclass=org.springframework.orm.hibernate3.HibernateTemplatepropertyname=sessionFactoryref=sessionFactory//bean调用见chapter24.SpringHibernate
本文标题:j2ee架构与程序设计spring
链接地址:https://www.777doc.com/doc-3481556 .html