Mina基础maven配置

本文介绍了如何配置Mina Maven项目,包括创建Maven项目,添加Mina依赖,配置Log4j日志文件,以及测试配置是否成功的方法。通过这些步骤,读者可以顺利开始Mina开发,避免手动管理依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mina构件maven配置

第一步创建maven项目

1.maven项目的创建过程简单可以在网上参考

第二步引入Mina相关依赖构件

  1. 打开编辑maven项目中的pom.xml文件,位置如图
    pom.xml位置

  2. 添加如下代码到pom.xml中<dependencies></dependencies>标签内

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
            <type>jar.sha256</type>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.6</version>
        </dependency>
        <dependency>
            <groupId>org.rxtx</groupId>
            <artifactId>rxtx</artifactId>
            <version>2.1.7</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>2.0.7</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
  1. 右键项目名->maven->update Project.. 如图
    mvn项目更新

这一步使得maven自动的帮你下载你配置的mina构件到你的项目中

第三步添加Log4j的日志输出配置文件

mina 依赖于log4j的日志输出功能,所以必须要配置好日志输出方式才能够正常的使用。配置步骤如下。

  1. 创建项目配置文件夹, 右键项目->New->Folder。为文件夹设置名字为config。如图
    创建文件夹
  2. 将config文件夹设置为项目资源文件夹,右键文件config文件夹(use as Source Folder) 如图
    转换文件夹类型
  3. 在config文件夹中创建一个文本文件,命名为log4j.properties,然后打开log4j.properties粘贴上代码到其中。
###set log levels -for more verbose logging change 'info' to 'debug'###
log4j.rootLogger=info,stdout,file
###direct log messages to stdout###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

###direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=d:\mylog.log

log4j.appender.file.MaxFileSize=100KB
# Keep one backup file
log4j.appender.file.MaxBackupIndex=1

log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

以上内容时将日志级别设置为了info级别,也就是大于info级别的日志才会输出。同时设置了两个日志输出的渠道,一个就是在控制台上打印日志,二个就是将日志文件打印到d盘的mylog.log文件中,读者可以自己再修改路径。

配置完成

到此配置完成,你就可以开始编写一个mina项目了,就不需要担心引入那些mina依赖jar构件了。下面提供一个测试是否配置成功的方法。


用例测试

1.创建一个类命名为MyServer ,当做作为mina服务器,创建消息处理类MyHandler 处理来之客户端的消息,代码如下。

public class MyServer {
    public static void main(String[] args) throws IOException {
        IoAcceptor acceptor = new NioSocketAcceptor();
        acceptor.getSessionConfig().setReadBufferSize(2048);
        acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
        acceptor.setHandler(new MyHandler());
        acceptor.getFilterChain().addLast("codec", 
                new ProtocolCodecFilter(
                        new TextLineCodecFactory(Charset.forName("UTF-8")
                                ,LineDelimiter.WINDOWS.getValue(),LineDelimiter.WINDOWS.getValue())));
        acceptor.bind(new InetSocketAddress(9123));

    }

}
class MyHandler extends IoHandlerAdapter{
    private final static Logger log = LoggerFactory.getLogger(MyHandler.class);
    private final static String QUIT = "quit";
    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {
        String str = message.toString();
        log.info("this message received is [" + str + "]");
        if(QUIT.equals(str)) {
            session.close(true);
            return;
        }
    }
}

2.然后我们运行 MyServer 中的 main 方法,你可以看到控制台一直处于阻塞状态,此时,我们使用window控制台作为客户端测试mina服务器,用 telnet 127.0.0.1 9123 访问,然后输入一些内容,当按下回车键,你会发现数据在
Server 端被输出,但要注意不要输入中文,因为 Windows 的命令行窗口不会对传输的数据
进行 UTF-8 编码。当输入 quit 结尾的字符串时,连接被断开。

如有疑问欢迎吐槽评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值