论坛首页 Java企业应用论坛

spring3.0使用annotation完全代替XML(续)

浏览 10462 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-09-03  
proTecJavaChen 写道
我是一个新手,个人理解,大型项目还是用XML比较好,因为那样一看XML文件就能明白各个BEAN之间的关系。如果都用注解方式,还得一个一个到Java类中看。维护起来比较麻烦。
这只是我个人理解,如果有说错的地方,希望指教。

这点是事实。注解会将语义信息分散到各个class中去,XML则是集中管理。
但是借助SpringSource Tool Suite或者其它IDE工具来管理这些分散的配置,算不算是一种弥补方案呢,呵呵
0 请登录后投票
   发表时间:2010-09-03   最后修改:2010-09-03
个人喜好问题,就像每个人的性格,星座,血型一样
非要证明谁更好的哪些人,属于喜欢把个人喜好强加于别人的种群

时间证明一切,共存代表多样性
0 请登录后投票
   发表时间:2010-09-03  
用annotation最大的问题是如果修改配置就要改代码,改了代码就要测试,这是不太可以接受的。用xml配置文件目的就是代码和配置分离,修改配置的时候不需要改代码走测试流程。

非常建议使用xml配置spring框架,至于action和dao层我倒是支持用annotation,改起来直观方便——尤其是hibernate的对象映射
1 请登录后投票
   发表时间:2010-09-03  
zzy9zzy 写道
用annotation最大的问题是如果修改配置就要改代码,改了代码就要测试,这是不太可以接受的。用xml配置文件目的就是代码和配置分离,修改配置的时候不需要改代码走测试流程。

非常建议使用xml配置spring框架,至于action和dao层我倒是支持用annotation,改起来直观方便——尤其是hibernate的对象映射

注解不并妨碍代码和配置分离,比如:
@Configuration
public class AppConfig {
	
	@Value("#{datasource.url}")
	private String databaseUrl;
	@Value("#{datasource.driver}")
	private String driverName;
	@Value("#{datasource.username}")
	private String username;
	@Value("#{datasource.password}")
	private String password;
    
    @Bean(destroyMethod = "close")
    public BasicDataSource dataSource(){
    	BasicDataSource dataSource = new BasicDataSource();
    	dataSource.setUrl(databaseUrl);
    	dataSource.setDriverClassName(driverName);
    	dataSource.setUsername(username);
    	dataSource.setPassword(password);
    	return dataSource;
    }
}

像数据库连接等所有依赖外部环境的配置都可以放到properties里面,再通过spring el注入到代码中来
0 请登录后投票
   发表时间:2010-09-03  
proTecJavaChen 写道
我是一个新手,个人理解,大型项目还是用XML比较好,因为那样一看XML文件就能明白各个BEAN之间的关系。如果都用注解方式,还得一个一个到Java类中看。维护起来比较麻烦。
这只是我个人理解,如果有说错的地方,希望指教。

这个倒不是问题,可以写个程序从Annotation提取出Spring的配置信息,再写到XML里,我还写过一个半成品的呢。

0 请登录后投票
   发表时间:2010-09-04  
鱼言风语 写道
俺觉着:

Spring用Annotation代替配置文件非常有必要
Ibatis用Annotation代替配置文件是倒退

如果配置信息本身是类/类的成员的特性,那么应该用Annotation;
如果配置信息依赖于外部环境,应该用配置文件


赞成,Spring的配置文件建议使用Annotation,ibatis的倒没有必要。放在xml中比放在代码中好。
0 请登录后投票
   发表时间:2010-09-04   最后修改:2010-09-04
septem 写道
zzy9zzy 写道
用annotation最大的问题是如果修改配置就要改代码,改了代码就要测试,这是不太可以接受的。用xml配置文件目的就是代码和配置分离,修改配置的时候不需要改代码走测试流程。

非常建议使用xml配置spring框架,至于action和dao层我倒是支持用annotation,改起来直观方便——尤其是hibernate的对象映射

注解不并妨碍代码和配置分离,比如:
@Configuration
public class AppConfig {
	
	@Value("#{datasource.url}")
	private String databaseUrl;
	@Value("#{datasource.driver}")
	private String driverName;
	@Value("#{datasource.username}")
	private String username;
	@Value("#{datasource.password}")
	private String password;
    
    @Bean(destroyMethod = "close")
    public BasicDataSource dataSource(){
    	BasicDataSource dataSource = new BasicDataSource();
    	dataSource.setUrl(databaseUrl);
    	dataSource.setDriverClassName(driverName);
    	dataSource.setUsername(username);
    	dataSource.setPassword(password);
    	return dataSource;
    }
}

像数据库连接等所有依赖外部环境的配置都可以放到properties里面,再通过spring el注入到代码中来


Spring的数据源配置还是不建议这样做。数据源这种不容易的变得东西是可以用annotation的,但变化主要在于大量Action,Bs,Dao,用annotation就要改代码。其实你的数据源这样做,还是要读取xml配置文件,不划算的。一般我们像下面这样在xml里面做配置就可以包括连接池和数据源一次性解决。

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
		<property name="username" value="name" />
		<property name="password" value="111111" />
	</bean>
0 请登录后投票
   发表时间:2010-09-04   最后修改:2010-09-04
zzy9zzy 写道
其实你的数据源这样做,还是要读取xml配置文件


不大明白你的意思。。。像driverClassName之类的数据库连接配置是放在properties文件里的,通过spring el注入到代码中,本来就没有xml,何来还是要读取xml之说?

对于这种外部环境的配置,都放在properties文件中,也可以避免因修改配置而走测试流程。但我还是觉得需要不需要测试不能简单地根据是修改代码还是修改xml来判断。如果你用xml来描述bean之间的依赖关系,修改xml就代表bean之间的依赖关系变了,对于这些影响比较大的变动,不也应该仔细地测试一下吗?

而且很多时候修改xml是由代码改动引起的,比如某个类被重命名了。。。
0 请登录后投票
   发表时间:2010-09-05  
个人觉得java可读性比xml差。如上面的用java配置数据源,我觉得很SB.因为我开发中确实经常改数据源的。而且我觉得数据源就该是配置,和代码有毛关系。哪个简单,直接比行数就可以了。
0 请登录后投票
   发表时间:2010-09-05  
slaser 写道
个人觉得java可读性比xml差。如上面的用java配置数据源,我觉得很SB.因为我开发中确实经常改数据源的。而且我觉得数据源就该是配置,和代码有毛关系。哪个简单,直接比行数就可以了。


还是第一次听说xml的可读性比java好。。。个人的习惯是很难改变的,用你觉得舒服的方式就好,没必要纠结于这些细节。。。

是不是很多人都没看明白帖子啊,数据源的配置是放在properties里面的,即使改也是改properties,这点跟你用代码还是xml无关。。。

行数是会比xml多几行,不过也仅仅是多几行而已,差别不大,相对来说,写代码总比写xml舒服一些吧。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics