- 浏览: 180142 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (186)
- Ant (11)
- Axis2 (15)
- Car (9)
- Eclipse (1)
- Java (19)
- Java-EM (4)
- Javascript (11)
- Jsp (1)
- Hibernate (9)
- Mysql (1)
- Ms-Dos (5)
- Music (0)
- Oracle (3)
- Postgresql (0)
- Photoshop (1)
- Spring (17)
- Struts (8)
- Selenium (5)
- Ubuntu (13)
- News (17)
- Others (7)
- SSH (11)
- 算法 (5)
- FreeMarker (4)
- Tomcat (2)
- Linux (5)
最新评论
简化Spring(1)--配置文件
作者:江南白衣序
人人都爱Spring加Hibernate。
但Spring MVC+hibernate的Sample如Appfuse的代码却算不得最简洁优美好读,如果在自己的项目中继续发挥我们最擅长的依样画葫芦大法,美好愿望未必会实现。
所以,Pramatic精神不灭。这个系列就是探寻最适合自己的Spring+Hibernate模式。
I-配置文件简化
我厌倦一切配置文件繁重的框架。
最好的情况是,框架提供极端灵活复杂的配置方式,但只在你需要的时候。
Spring提供了三种可能来简化XML。随着国内用户水平的提高,这些基本的简化技巧大家都已掌握。
大家可以直接看第3,第4点--Spring 1.2, Spring 2.0的后继改进。
1.1.autowire="byName" /"byType"
假设Controller有一个属性名为customerDAO,Spring就会在配置文件里查找有没有名字为CustomerDAO的bean, 自动为Controller注入。
如果bean有两个属性,一个想默认注入,一个想自定义,只要设定了autowire,然后显式的声明那个想自定义的,就可以达到要求。这就应了需求,在需要特别配置的时候就提供配置,否则给我一个默认注入。
还有一个更懒的地方,在最最根部的<beans>节点写一句default-autovwrie="byName",可以让文件里的所有bean 都默认autowrie。
不过Rod认为开发期可以这样,但Production Server上不应该使用Autowire。而我觉得那些自定义一次的地方比如TranscationManager应该详细定义,而 Dao,Controller这种大量重复定义的bean就可以偷点懒了。
1.2.<bean>节点之间抽象公共定义和 Inner Bean
这太方便懒人了,想不到两个独立的XML节点都可以玩继承和派生,子节点拥有父节点的全部属性。
最好用的地方就是那个Transtion Proxy的定义。先定义一个又长又冗的父类,然后用子类去继承它。
另外,还有一个Inner Bean的机制,可以把DAO写成Proxy的内部类。为什么要写成内部类?为了让Proxy冒名顶替它去让Controller Autowire。(详见后面的示例)
1.3. 宽松的配置, To XML or Not to XML
据说Spring比Struts的配置宽松了很多,这就给人把东西从配置文件中撤回原码中的机会。
不赞成什么都往配置文件里晒,造成了Rich Information的配置文件,修改或者查看的时候,要同时打开配置文件和原码才能清楚一切。
而我希望配置文件就集中做一些整体的配置,还有框架必须的、无需管理的冗余代码。而一些细节的变化不大的配置和逻辑,就尽量别往里塞了。因此,Success/Fail View 的配置,不建议放在里面。
2.简化后的配置文件
1.Controller只剩下一句
2.DAO也只剩一句
3.Service类只剩下5行
<property name="target">
<bean class="org.springside.bookstore.service.CustomerManager"/>
</property>
</bean>
3.Spring 1.2后xml语法简化
最主要的简化是把属性值和引用bean从子节点变回了属性值,对不喜欢autowire的兄弟比较有用。
当然,如果value要CDATA的时候还是要用子节点。另外,list的值可以用空格隔开也比较实用。
<value>fooValue</value>
</property>
简化为
<property name="foo" value="fooValue"/>
2.引用 bean
<ref bean="fooBean">
</property>
简化为
<property name="foo" ref="fooBean"/>
3. list可以简化为空格分开的字符串
<list>
<value>gigix</value>
<value>wuyu</value>
</list>
</property>
简化为
<property name="myFriendList" value="gigix wuyu"/>
4.Spring 2.0来了
如果没什么外力刺激,spring xml 可能就这样不会变了。但现在xml成了过街老鼠,被ror的默认配置和JDK5的annotation逼得不行,当然就要继续求变。
比如有好事者认为,节点名必须以bean打头,附加一个属性id来表示bean名;属性值必须搞一个property子节点,子节点上有个属性name来表示属性名,是给机器看的很不直观的东西。
<property name="maxCount" value="10">
</bean>
给人看的东西应该就写成
Spring 2.0正用schema实现类似的语法,具体请看它的JPetStore sample。
6.还有更变态的简化配置方法
比如autoproxy,不过我觉得更简化就不可控了,所以没有采用。
发表评论
-
spring-hibernate
2008-10-24 21:04 684原则上尽量要使用spring下载包里lib目录里的jar文件 ... -
在项目中为 Spring Framework 配置 Log4j
2008-10-28 19:15 764创建一个基于 Spring Framework 的项目之后,在 ... -
spring2.0以后声明式事务管理
2008-10-29 17:35 811基于注解式的 <?xml version="1 ... -
SpringBeanFactory
2008-10-29 17:38 802SpringBeanFactory import org.sp ... -
用 Hibernate 和 Spring 开发事务持久层(转贴)
2008-10-30 20:20 657用 Hibernate 和 Spring 开发 ... -
Spring配置事务在DAO层和业务逻辑层
2008-10-31 10:39 826转自:http://www.blogjava.n ... -
基于 MVC 三层架构,Spring 配置文件(08.10.31号)
2008-10-31 11:28 893<?xml version="1.0" ... -
简化Spring(2)--Model层
2008-10-31 13:54 595简化Spring(2)--Model层 作者:江南白 ... -
简化Spring(3)--Controller层
2008-10-31 13:55 509简化Spring(3)--Controller层 ... -
简化Spring(4)--View层
2008-10-31 13:55 525简化Spring(4)--View层 作者:江南白衣 ... -
Spring--简单使用quartz实现定时作业
2008-10-31 14:14 685Spring--简单使用quartz实现定时作业 ... -
Pathway from ACEGI to Spring Security 2.0
2008-11-20 08:42 722Pathway from ACEGI to Spring Se ... -
Pathway from ACEGI to Spring Security 2.0(2)
2008-11-20 08:55 835The main part of this piece of ... -
Pathway from ACEGI to Spring Security 2.0(3)
2008-11-20 08:56 882OK, so now we have setup the d ... -
spring常见错误之一
2008-12-13 09:32 737Error creating bean with name ' ... -
ApplicationContext.xml
2008-12-02 16:41 835<?xml version="1.0&qu ...
相关推荐
标签 "spring-boot starter-parent-1" 指出了这是关于Spring Boot的starter parent,可能是指一系列版本中的第一个。 在压缩包的文件名称列表中,有两个文件: 1. `spring-boot-starter-parent-1.5.13.RELEASE.pom....
在实际使用中,开发者需要在自己的POM文件中添加jasypt-spring-boot-starter的依赖,然后在配置文件(如application.properties或application.yml)中声明加密的属性,并指定相应的密钥。这样,Spring Boot在启动时...
首先,我们需要理解Spring配置文件的作用。在早期的Spring版本中,所有的bean定义、依赖注入以及其他配置都存储在如`bsappConfig.xml`, `spring-config.xml`, `webapp-config.xml`等这样的XML文件中。这些文件通常...
xbean简化spring配置文件 xbean是 Apache Geronimo 项目的一个子项目,旨在简化Spring配置文件的编写。下面我们来详细介绍如何使用xbean简化Spring配置文件。 在Spring之前,我们使用Factory模式来管理bean。例如...
这些XML Schema定义了Spring配置文件中可以使用的元素和属性,帮助开发者正确地编写和验证配置文件。例如,`http://www.springframework.org/schema/beans`是Spring核心组件的配置命名空间,`...
10. **配置文件**:Spring应用通常使用YAML或XML格式的配置文件,定义bean的定义和应用设置。Spring 5.3.3可能会对配置文件的解析和处理进行优化。 在解压后的"spring-framework-5.3.3"目录中,你可以找到源码、...
spring-boot-starter-parent的主要特点是它可以帮助开发者快速构建Spring Boot项目,简化项目的依赖项管理和配置工作。通过在pom.xml文件中添加spring-boot-starter-parent依赖项,开发者可以快速引入Spring Boot...
4. `spring config`:用于处理配置属性,如读取和解析YAML或Properties文件。 在`spring-2.0.0.M1`目录中,包含了Spring Boot CLI的可执行文件(如`spring`或`spring.bat`,取决于你的操作系统),这些文件让你能够...
开发者可以根据这些schema编写符合规范的Spring配置文件,使得配置过程更加规范和高效。 五、使用技巧与最佳实践 1. 利用Spring Boot简化配置:Spring Boot是基于Spring Framework构建微服务应用的快速启动器,可以...
Spring Boot的核心理念是简化Spring应用程序的初始设置和配置。2.2.6.RELEASE是其发布的一个稳定版本,包含了自2.2.0以来的所有更新、改进和修复。这个版本提供了更好的性能、增强的安全性以及对最新依赖库的支持。 ...
2. 初始化完成后,会生成一个`build.gradle`文件,这是Gradle构建工具的配置文件,你可以使用`gradle build`来构建项目。 运行Groovy脚本: 1. Spring Boot CLI支持直接运行Groovy脚本,例如`spring run hello....
3. **schema文件夹**:这个文件夹内包含了一系列XML Schema定义,用于验证Spring配置文件的语法正确性。这些XML Schema文件定义了Spring配置元素、属性及其约束,帮助开发者编写规范的配置文件,确保Spring容器能...
Spring Boot 是一个流行的 Java 框架,用于简化Spring应用的初始设置和开发过程。它提供了许多默认配置,使得开发者可以快速地启动一个新的项目。在本案例中,我们讨论的是 "spring-boot-parent.rar" 文件,这很可能...
在Spring框架中,XML配置文件是声明式配置的主要方式,而XSD(XML Schema Definition)文件则定义了这些XML配置文件的结构和约束。`spring-context-4.2.xsd`是Spring 4.2版本的Context模块的XSD文件,它包含了对...
这些Schema定义了在Spring配置文件中使用的元素和属性,使得XML配置更加结构化和易于理解。通过Schema,开发者可以更清晰地看到每个元素的作用,有助于编写正确的配置文件,实现组件的声明式配置。 Spring ...
(3) 配置MyBatis:创建mybatis-config.xml文件,定义SqlSessionFactory,并在配置文件中指定其位置。 ```xml ${spring.datasource.driver-class-name}"/> ${spring.datasource.url}"/> ${spring....
- **spring-5.3.7-schema.zip**:可能包含Spring配置文件的XML模式定义,有助于验证配置文件的正确性。 6. **使用流程**: - 解压压缩包,将所需的jar文件添加到项目类路径。 - 配置Spring的IoC容器,可以使用...
标题中的"spring-tool-suite-3.9.6....使用这款工具,开发者可以享受到无缝的Spring集成,包括对Spring配置文件的智能感知,快速的项目创建,以及方便的Spring Boot和Spring Cloud支持,使开发过程更加流畅和高效。
Spring Tool Suite是Spring框架官方提供的一个集成开发环境(IDE),用于简化Spring框架以及Spring Boot应用的开发工作。 描述中的"spring-tool-suite-3.9.6.RELEASE-e4.9.0-win32-x86_64"进一步确认了这是STS的一...