我在Apache FtpServer的文档中找到了这个非常简单的描述:
与Spring Framework集成
Apache FtpServer使用Spring Framework来实现配置。这也意味着我们可以获得与常规Spring XML配置完全集成的额外好处。例如,您可以在Spring配置中随意嵌入“server”元素,并且在类路径上使用FtpServer,Spring将为您连接服务器。
没有其他事情:
我是否已经研究过Spring的配置框架以了解它的全部内容?
答案 0 :(得分:4)
有关该文档的文档,并不难找到。它在这个页面上:
http://mina.apache.org/ftpserver-project/running_ftpserver_standalone.html
事实证明,在启动服务器时,只需在命令行中指定XML配置文件:
bin/ftpd.sh res/conf/ftpd-typical.xml
对于Windows:
bin/ftpd.bat res/conf/ftpd-typical.xml
我只是为自己尝试了这个:我下载了服务器,解雇了命令,然后......它开始服务了。
答案 1 :(得分:3)
无法判断原始提问者 是否希望 通过XML配置FtpServer,或者他/她是否不知道这是否是嵌入的要求。< / p>
正如产品文档中清楚地显示的那样,并且正如其他答案所指出的那样,可以直接以编程方式完全配置FtpServer。
但我认为,如果原始提问者确实想要这样做,肯定会有很多人认识到在嵌入式应用程序中使用XML声明性地配置FtpServer的管理好处。这是如何做到的:
是的,您确实需要使用Spring为FtpServer使用XML配置,但您不需要了解有关Spring的任何信息。
只需编写此单个语句,即可实例化使用指定XML文件配置的FTP服务器:
FtpServer server = new FileSystemXmlApplicationContext("config/ftpd.xml").getBean("fServer", FtpServer.class);
(你显然需要.start()之后......就是这样。)
还有其他方法可以从bean文件中加载bean,但这很简单且易于维护,您可以轻松地更改元素的ID以匹配指定的bean名称(上面一行中的“fServer”)。 XML文件路径与调用JVM(“java”)的位置相关,但您可以使用绝对路径。 您还可以将XML文件作为CLASSPATH资源加载,而不是从文件系统加载。这有利有弊,我不会花时间讨论它们,也不会讨论如何做到这一点。
唯一需要知道的是,您需要在编译CLASSPATH中使用一些Spring jar文件,并在运行时CLASSPATH中使用许多Spring jar文件。这些罐子中的ALl很容易在Maven中央存储库中获得,并且它们一起以3 MB以下的速度存在。以下是Ivy格式的jar依赖项:
<dependency name="mina-core" org="org.apache.mina" rev="2.0.4" conf="runtime"/>
<dependency name="slf4j-api" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="jcl-over-slf4j" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="slf4j-jdk14" org="org.slf4j" rev="1.6.3" conf="runtime"/>
<dependency name="ftplet-api" org="org.apache.ftpserver" rev="1.0.6" conf="runtime"/>
<dependency name="ftpserver-core" org="org.apache.ftpserver" rev="1.0.6"/>
<dependency name="spring-context" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-core" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-beans" org="org.springframework"
rev="3.0.6.RELEASE"/>
<dependency name="spring-asm" org="org.springframework" conf="runtime"
rev="3.0.6.RELEASE"/>
<dependency name="spring-expression" org="org.springframework" conf="runtime"
rev="3.0.6.RELEASE"/>
答案 2 :(得分:1)
您在another question询问了嵌入式FTP服务器。嵌入式使用有instructions。嵌入时,您不需要任何配置文件,您可以使用API为服务器提供所有必需的信息。
您不需要知道Spring配置(除非您在项目的其他地方使用Spring框架)。 ftp库应该自动处理配置。
答案 3 :(得分:0)
以Embedding FtpServer in 5 minutes为例,您可以像这样连接弹簧bean:
<bean id="ftpServer" factory-bean="ftpServerFactory" factory-method="createServer" init-method="start" />
<bean id="ftpServerFactory" class="org.apache.ftpserver.FtpServerFactory">
<property name="userManager">
<bean id="ftpUsers" factory-bean="ftpUsersFactory" factory-method="createUserManager" />
</property>
</bean>
<bean id="ftpUsersFactory" class="org.apache.ftpserver.usermanager.PropertiesUserManagerFactory">
<property name="file" value="users.properties" />
</bean>
它将使用属性文件中的用户配置在端口21上启动FTP服务器(我使用了the release中提供的那个)
答案 4 :(得分:-1)
Spring的配置机制非常简单而且灵活 - 基本上只是一个定义了一堆对象及其关系的XML文件(通过指定构造函数参数,调用setter等等 - 就像你从代码中做的那样)。
一个关键点是它将对象连接在一起,否则完全正常(没有“Spring magic”)。因此,您可以使用Spring组件并独立于配置机制使用它们 - 方便在其他框架中进行测试和重用,或者使用外部组件并在Spring项目中使用它们而不做任何更改。