`
septem
  • 浏览: 54451 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
上一篇文章还有些话没说完,没想到一拖就是2周,所以干脆另开一篇吧。

从回帖的反应来看,大多数人还是不赞成完全代替XML的,这点倒是在意料之中。我个人还是倾向于用代码来取代XML的Bean定义,当然这更多的是关乎个人偏好,不代表与我观点不同的人就是错的。

先来说说代码相对于XML的优点吧:

   1. 更加简洁,相对于XML的“语法”,java来得更熟悉
   2. 类型安全,更大程度上发挥java静态语言的特性
   3. 对重构更加友好

再说说用annotation代替XML的可能性吧,目前看来是不大可能,主要还存在以下的限制:

1. java的语言文化

不知道还有哪门语言比java更加依赖XML,尤其是做web开发。在JDK5之前,没有annotation的时代,用XML来记录一些补充语义,似乎也没有比这更理想的方案。这些年用着用着大家就习惯了,于是不再有人去质疑。回头看看平时使用的各种大大小小的框架,除了Bob Lee开发的google guice,没有哪个从最初的设计开始就抛开XML的,在java主流文化的影响下拿出这么“非主流”的作品,难怪他自称crazybob。好在这些情况在慢慢好转,annotation以及CoC等观念被越来越多的人接受。

2. spring本身的限制

spring2.0开始引入的schema与namespace大大简化了XML Bean的定义,比如<tx:annotation-driven />,简单一行就开启了用annotation来配置事务的功能(还记得spring1.x的时候需要多少行来配置事务吗?)。换做用 @Configuration要如何实现?这个时候只能深入spring的细节,找出<tx:annotation-driven />注册的所有bean,一个一个地在AppConfig.java中手工定义。我之前想过写一个插件来解决这个问题,即通过代码定义一个简单的bean就可以实现namespace这样的功能。后来在spring的jira上发现了spring3.1即将提供这样的支持,在基于java的配置中增加以下高级配置的功能:

    * Enabling annotation-driven transaction management (<tx:annotation-driven/>)
    * Enabling annotation-driven scheduling (<task:annotation-driven/>)
    * Enabling AspectJ auto-proxying (<aop:aspectj-autoproxy)
    * Enabling domain object DI with @Configurable (<aop:spring-configured/>)
    * Enabling property-placeholder replacement (<context:property-placeholder/>)
    * Enabling AspectJ load-time weaving (<context:load-time-weaver/>)
    * Enabling MBean Export (<context:mbean-export/>)
    * Enabling component scanning (<context:component-scan/>)
    * Performing JNDI lookups (<jee:jndi-lookup/>)
    * Looking up local and remote stateless session beans (<jee:local-slsb/>; <jee:remote-slsb/>)

所以这个问题在未来的版本中也会得到解决

总结:所以我觉得java-based configuration会是一个趋势。说来惭愧,像python, ruby等语言不早就这么做了吗?看看django, rails,里面的配置不都是用自己的语言来写吗?大家都玩得这么High,java怎么能缺席呢?
分享到:
评论
23 楼 septem 2010-09-06  
zzy9zzy 写道

properties和xml不是一个意思嘛,都是配置文件。对了,你的项目是不是不用Spring啊,我记得以前不用Spring做项目的时候,确实是把数据库配置放在properties里面的,那你的做法我还是赞同的。

我接触到的项目,不管用什么框架,数据库连接等配置都是放在properties里面的
22 楼 zzy9zzy 2010-09-06  
septem 写道
zzy9zzy 写道
其实你的数据源这样做,还是要读取xml配置文件


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

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

而且很多时候修改xml是由代码改动引起的,比如某个类被重命名了。。。


properties和xml不是一个意思嘛,都是配置文件。对了,你的项目是不是不用Spring啊,我记得以前不用Spring做项目的时候,确实是把数据库配置放在properties里面的,那你的做法我还是赞同的。
21 楼 jcs7575 2010-09-05  
xml配置还是很必要的,可以集中很多信息,很方便的,annotation比较分散

除非用annotation比xml性能有很大提升,否则即使有个三方的工具之类的东西可以提取出所有anntoation 也还是没有xml来的方便快捷。
20 楼 slaser 2010-09-05  
septem 写道
slaser 写道
个人觉得java可读性比xml差。如上面的用java配置数据源,我觉得很SB.因为我开发中确实经常改数据源的。而且我觉得数据源就该是配置,和代码有毛关系。哪个简单,直接比行数就可以了。


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

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

行数是会比xml多几行,不过也仅仅是多几行而已,差别不大,相对来说,写代码总比写xml舒服一些吧。。。

你觉得写java舒服估计是有API提示的原因。
对于数据源这种相对固定的配置,没几个人记不住。

IOC关系定义这块确实有争议。说说我所遇到的工作环境,经常有项目被转移给别人做,对于有经验的人,要明白代码,首先看applicationContext.xml. 这个比看annotation快多了。

19 楼 septem 2010-09-05  
slaser 写道
个人觉得java可读性比xml差。如上面的用java配置数据源,我觉得很SB.因为我开发中确实经常改数据源的。而且我觉得数据源就该是配置,和代码有毛关系。哪个简单,直接比行数就可以了。


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

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

行数是会比xml多几行,不过也仅仅是多几行而已,差别不大,相对来说,写代码总比写xml舒服一些吧。。。
18 楼 slaser 2010-09-05  
个人觉得java可读性比xml差。如上面的用java配置数据源,我觉得很SB.因为我开发中确实经常改数据源的。而且我觉得数据源就该是配置,和代码有毛关系。哪个简单,直接比行数就可以了。
17 楼 septem 2010-09-04  
zzy9zzy 写道
其实你的数据源这样做,还是要读取xml配置文件


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

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

而且很多时候修改xml是由代码改动引起的,比如某个类被重命名了。。。
16 楼 zzy9zzy 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>
15 楼 songfantasy 2010-09-04  
鱼言风语 写道
俺觉着:

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

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


赞成,Spring的配置文件建议使用Annotation,ibatis的倒没有必要。放在xml中比放在代码中好。
14 楼 chinpom 2010-09-03  
<div class="quote_title">proTecJavaChen 写道</div>
<div class="quote_div">我是一个新手,个人理解,大型项目还是用XML比较好,因为那样一看XML文件就能明白各个BEAN之间的关系。如果都用注解方式,还得一个一个到Java类中看。维护起来比较麻烦。<br>这只是我个人理解,如果有说错的地方,希望指教。</div>
<p>这个倒不是问题,可以写个程序从Annotation提取出Spring的配置信息,再写到XML里,我还写过一个半成品的呢。<img src="/images/smiles/icon_wink.gif" alt=""></p>
13 楼 septem 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注入到代码中来
12 楼 zzy9zzy 2010-09-03  
用annotation最大的问题是如果修改配置就要改代码,改了代码就要测试,这是不太可以接受的。用xml配置文件目的就是代码和配置分离,修改配置的时候不需要改代码走测试流程。

非常建议使用xml配置spring框架,至于action和dao层我倒是支持用annotation,改起来直观方便——尤其是hibernate的对象映射
11 楼 scottcgi 2010-09-03  
个人喜好问题,就像每个人的性格,星座,血型一样
非要证明谁更好的哪些人,属于喜欢把个人喜好强加于别人的种群

时间证明一切,共存代表多样性
10 楼 septem 2010-09-03  
proTecJavaChen 写道
我是一个新手,个人理解,大型项目还是用XML比较好,因为那样一看XML文件就能明白各个BEAN之间的关系。如果都用注解方式,还得一个一个到Java类中看。维护起来比较麻烦。
这只是我个人理解,如果有说错的地方,希望指教。

这点是事实。注解会将语义信息分散到各个class中去,XML则是集中管理。
但是借助SpringSource Tool Suite或者其它IDE工具来管理这些分散的配置,算不算是一种弥补方案呢,呵呵
9 楼 鱼言风语 2010-09-03  
wwy_0918 写道
鱼言风语 写道
俺觉着:

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

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


支持,方便理解代码。



Annotation的用途可不是为了方便理解代码,有了Annotation,你自己就可以很容易的做你自己的AOP了。
8 楼 wwy_0918 2010-09-03  
鱼言风语 写道
俺觉着:

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

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


支持,方便理解代码。
7 楼 proTecJavaChen 2010-09-03  
我是一个新手,个人理解,大型项目还是用XML比较好,因为那样一看XML文件就能明白各个BEAN之间的关系。如果都用注解方式,还得一个一个到Java类中看。维护起来比较麻烦。
这只是我个人理解,如果有说错的地方,希望指教。
6 楼 Foxswily 2010-09-03  
鱼言风语 写道
俺觉着:

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

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


赞同,Spring新版大力推Annotation也是基于此,很多必然且几乎不会改变的依赖没必要放到配置文件。

尝试过给Ibatis加Annotation,如果把Dao(或者3.0的Mapper)跟sqlmap一一对应的话把sql注入到类里还有点价值,其他配置,留给xml吧
5 楼 hlylove 2010-09-03  
鱼言风语 写道
俺觉着:

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

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

揣摩着有点道理
4 楼 septem 2010-09-03  
zhangzi 写道
凡事无绝对,只强调一面是片面的,要从多方面看问题,每个事物的存在都有它的必然性,你这个标题使我想到了,搞web设计的全都用css写,这个观点与你相似,其实这种观点是错误的,annotation要和xml合理搭配,才能起到好的效果


每个事物的存在都能找到理由,但不一定是必然的。凡事无绝对,存在即合理等等这种大而空的理论大概就是我所说的语言文化的一部分吧,不能说这些理论是错误的,但我更想听你说说XML的优点,以及怎样才叫合理搭配?

相关推荐

    【java毕业设计】新冠疫情下的校园出入系统源码(ssm+mysql+说明文档+LW).zip

    功能说明: 本系统主要包括以下功能模块:个人中心,通知公告管理,用户管理,工作人员管理,进门登记管理,出门登记管理,出入统计管理,外来登记管理等模块。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    param-1.5.1-cp34-cp34m-win_amd64.whl.rar

    PartSegCore_compiled_backend-0.12.0a0-cp36-cp36m-win_amd64.whl.rar

    yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip

    yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip;yolo算法-分神驾驶数据集-8674张图像带标签-没有安全带-唤醒-昏昏欲睡-安全带-电话-打哈欠.zip

    pgmagick-0.7.5-cp37-cp37m-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    中国省级与地级市财政转移支付数据-最新.zip

    中国省级与地级市财政转移支付数据-最新.zip

    OPENCV 常用XML 内涵17个常用XML,包括人脸检测,微笑检测,人眼检测,用于学习模型训练和使用

    OPENCV 常用XML 内涵17个常用XML,包括人脸检测,微笑检测,人眼检测,用于学习模型训练和使用

    polylearn-0.1.dev0-cp27-cp27m-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    postgresadapter-2.0.1-cp36-cp36m-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    Polygon2-2.0.8-cp27-cp27m-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    基于SSM的医院管理系统的设计与实现

    开发语言:Java 框架:SSM JDK版本:JDK1.8 服务器:tomcat8.5 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 浏览器:谷歌浏览器

    yolo算法-扑克牌数据集-1285张图像带标签.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    中国各省GDP及农业主要指标数据集(1999-2019).zip

    中国各省GDP及农业主要指标数据集(1999-2019).zip

    【java毕业设计】大学生校园图书角管理系统源码(ssm+mysql+说明文档+LW).zip

    功能说明: 系统主要包括系统主页、个人中心、用户管理、图书信息管理、图书分类管理、图书购买管理、图书借阅管理、图书续借管理、图书归还管理、留言板管理、系统管理等功能模块。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    2023-04-06-项目笔记 - 第三百二十阶段 - 4.4.2.318全局变量的作用域-318 -2025.11.17

    2023-04-06-项目笔记-第三百二十阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.318局变量的作用域_318- 2024-11-17

    Saturn-PCB-Toolkit-V7.00(土星PCB计算器)

    Saturn_PCB_Toolkit_V7.00_ 是一款功能强大的PCB参数计算工具,本人PCB设计15年一直使用的这款计算器,利用其给出的设计数据(如线距、线宽线厚),布出的PCB实际使用未曾出现过问题 以下是其主要功能特点: 1. **过孔特性计算**:能够计算过孔的寄生电容、寄生电感、过孔阻抗、过孔直流电阻、共振频率、阶跃响应、功耗等参数。 2. **导线载流能力计算**:可以计算不同线宽下的载流能力,根据环境温度和温升条件,提供不同条件下的载流值。 3. **串扰计算**:计算两相互耦合信号线间的串扰,这对于高速PCB设计尤为重要。 4. **波长计算**:提供波长的计算功能,这对于射频和高速数字PCB设计非常关键。 5. **导体阻抗计算**:计算导体的阻抗,这对于阻抗匹配和信号完整性至关重要。 6. **单位换算**:提供单位换算功能,方便不同单位制之间的转换。 7. **差分对计算**:针对差分信号的计算,这对于高速数据传输和降低噪声非常重要。

    yolo算法-车内乘客识别器数据集-1035张图像带标签-乘客.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    最新整理-中国各、省、市、县、乡镇基尼系数数据(到2023年)

    ## 一、数据介绍 数据名称:中国各、省、市、县、乡镇基尼系数数据 数据年份:1992-2023年 样本数量:92064条 数据格式:面板数据 ## 二、指标说明 共计10个指标:年份、省、省代码、市、市代码、县、县代码、乡镇、乡镇代码、夜间灯光基尼系数 ## 三、数据文件 中国各乡镇基尼系数(基于夜间灯光数据)2000-2023年.dta; 中国各区县基尼系数(基于夜间灯光数据)2000-2023年.dta; 中国各城市基尼系数(基于夜间灯光数据)2000-2023年.dta; 中国各省份基尼系数(基于夜间灯光数据)2000-2023年.dta

    【java毕业设计】学业帮扶管理系统源码(ssm+mysql+说明文档).zip

    环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    【java毕业设计】毕业生生活用品出售网站系统源码(ssm+mysql+说明文档+LW).zip

    功能说明: 系统主要包括管理员,商家和用户三大模块 (a) 管理员;管理员进入系统主要功能包括个人中心,用户管理,商家管理,用品分类管理,用品信息管理,系统管理,订单管理等功能并进行操作。 (b) 商家;商家进入系统主要功能包括个人中心,用品信息管理,订单管理等功能并进行操作。 (c) 用户;用户进入系统主要功能包括个人中心,我的收藏管理等功能并进行操作。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    最新行政区划、乡镇级矢量地图及2022年道路、水系、建筑轮廓数据(shp格式)-已更至最新.zip

    最新行政区划、乡镇级矢量地图及2022年道路、水系、建筑轮廓数据(shp格式)-已更至最新.zip

Global site tag (gtag.js) - Google Analytics