pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/kotlin/com/flightfeather/obd/ObdApplication.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/kotlin/com/flightfeather/obd/domain/MyMapper.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/kotlin/com/flightfeather/obd/lightshare/packgeinfo.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/kotlin/com/flightfeather/obd/socket/ServerHandler.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/kotlin/com/flightfeather/obd/socket/SocketServerClient.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/generator/generatorConfig.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -18,6 +18,9 @@ <properties> <java.version>1.8</java.version> <kotlin.version>1.2.71</kotlin.version> <!-- tk.mybatis --> <mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin> <mapper.Mapper>tk.mybatis.mapper.common.Mapper</mapper.Mapper> </properties> <dependencies> @@ -59,6 +62,32 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <!--tk.mybatis--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> <!--Netty--> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.39.Final</version> </dependency> </dependencies> <build> @@ -88,7 +117,71 @@ </dependency> </dependencies> </plugin> <!-- mybatis generator èªå¨çæä»£ç æä»¶ --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.1.5</version> </dependency> </dependencies> </plugin> </plugins> </build> <!--ä¾èµä¸è½½å°å--> <repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project> src/main/kotlin/com/flightfeather/obd/ObdApplication.kt
@@ -1,5 +1,6 @@ package com.flightfeather.obd import com.flightfeather.obd.socket.SocketServerClient import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @@ -7,5 +8,8 @@ class ObdApplication fun main(args: Array<String>) { SocketServerClient().startServer(9000) runApplication<ObdApplication>(*args) } src/main/kotlin/com/flightfeather/obd/domain/MyMapper.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ package com.flightfeather.obd.domain import tk.mybatis.mapper.common.Mapper import tk.mybatis.mapper.common.MySqlMapper interface MyMapper<T> : Mapper<T>, MySqlMapper<T> { } src/main/kotlin/com/flightfeather/obd/lightshare/packgeinfo.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,2 @@ package com.flightfeather.obd.lightshare src/main/kotlin/com/flightfeather/obd/socket/ServerHandler.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package com.flightfeather.obd.socket import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter import io.netty.util.AttributeKey class ServerHandler : ChannelInboundHandlerAdapter() { val attributeKey = AttributeKey.valueOf<String>("deviceCode") override fun channelRegistered(ctx: ChannelHandlerContext?) { super.channelRegistered(ctx) } override fun channelActive(ctx: ChannelHandlerContext?) { super.channelActive(ctx) } override fun channelRead(ctx: ChannelHandlerContext?, msg: Any?) { super.channelRead(ctx, msg) val attribute = ctx?.channel()?.attr(attributeKey)?.apply { if (get() == null) { // set() } } } override fun channelReadComplete(ctx: ChannelHandlerContext?) { super.channelReadComplete(ctx) } override fun channelInactive(ctx: ChannelHandlerContext?) { super.channelInactive(ctx) } override fun exceptionCaught(ctx: ChannelHandlerContext?, cause: Throwable?) { super.exceptionCaught(ctx, cause) } } src/main/kotlin/com/flightfeather/obd/socket/SocketServerClient.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.flightfeather.obd.socket import io.netty.bootstrap.ServerBootstrap import io.netty.channel.ChannelInitializer import io.netty.channel.ChannelOption import io.netty.channel.nio.NioEventLoopGroup import io.netty.channel.socket.SocketChannel import io.netty.channel.socket.nio.NioServerSocketChannel import io.netty.channel.socket.nio.NioSocketChannel /** * socketé¿è¿æ¥æå¡ç«¯ * 2019.8.26 * @author riku */ class SocketServerClient { // val sessionMap = HashMap<String, IoSession> fun startServer(port: Int) { initialize()?.bind(port)?.sync() ?.channel()?.closeFuture()?.sync() } private fun initialize(): ServerBootstrap? { val bossGroup = NioEventLoopGroup() val workerGroup = NioEventLoopGroup() try { return ServerBootstrap() .group(bossGroup, workerGroup) .channel(NioServerSocketChannel::class.java) .childHandler(object : ChannelInitializer<NioSocketChannel>() { override fun initChannel(p0: NioSocketChannel?) { p0?.pipeline()?.addLast(ServerHandler()) } }) .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true) } catch (e: Throwable) { e.printStackTrace() } finally { bossGroup.shutdownGracefully() workerGroup.shutdownGracefully() } return null } } src/main/resources/application.yml
src/main/resources/generator/generatorConfig.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- æ°æ®åºé©±å¨:éæ©ä½ çæ¬å°ç¡¬çä¸é¢çæ°æ®åºé©±å¨å --> <classPathEntry location="C:\Users\feiyu\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/> <!--defaultModelType{ conditional:è¿ä¸ªæ¨¡åä¸hierarchical模åç¸ä¼¼,é¤äºå¦æä¸ä¸ªå®ä½ç±»åªå å«ä¸ä¸ªå段,åä¸ä¼åç¬çææ¤å®ä½ç±»ãå æ¤,妿ä¸ä¸ªè¡¨ç主é®åªæä¸ä¸ªå段,é£ä¹ä¸ä¼ä¸ºè¯¥å段çæåç¬çå®ä½ç±»,ä¼å°è¯¥å段åå¹¶å°åºæ¬å®ä½ç±»ä¸ã flat:该模å为æ¯ä¸å¼ 表åªçæä¸ä¸ªå®ä½ç±»ãè¿ä¸ªå®ä½ç±»å å«è¡¨ä¸çææå段ã hierarchical:å¦æè¡¨æä¸»é®,é£ä¹è¯¥æ¨¡åä¼äº§çä¸ä¸ªåç¬ç主é®å®ä½ç±»,å¦æè¡¨è¿æBLOBåæ®µï¼åä¼ä¸ºè¡¨çæä¸ä¸ªå 嫿æBLOBåæ®µçåç¬çå®ä½ç±»,ç¶å为ææå ¶ä»çåæ®µçæä¸ä¸ªåç¬çå®ä½ç±»ãMBGä¼å¨ææçæçå®ä½ç±»ä¹é´ç»´æ¤ä¸ä¸ªç»§æ¿å ³ç³»ã }--> <context id="DB2Tables" defaultModelType="flat" targetRuntime="MyBatis3"> <!-- TKmybatisé ç½® --> <property name="javaFileEncoding" value="UTF-8"/> <property name="beginningDelimiter" value="`"/> <property name="endingDelimiter" value="`"/> <plugin type="${mapper.plugin}"> <property name="mappers" value="${mapper.Mapper}"/> </plugin> <commentGenerator> <property name="suppressDate" value="true"/> <!-- æ¯å¦å»é¤èªå¨çæç注é trueï¼æ¯ ï¼ false:å¦ --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--æ°æ®åºé¾æ¥URLï¼ç¨æ·åãå¯ç --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://47.100.191.150:3306/obd" userId="obd" password="obd2019"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- çææ¨¡åçå ååä½ç½®--> <javaModelGenerator targetPackage="com.flightfeather.obd.domain.entity" targetProject="src/main/kotlin"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- çææ å°æä»¶çå ååä½ç½®--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- çæDAOçå ååä½ç½®--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.flightfeather.obd.domain.mapper" targetProject="src/main/kotlin"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- è¦çæç表 tableNameæ¯æ°æ®åºä¸ç表åæè§å¾å domainObjectNameæ¯å®ä½ç±»å--> <table tableName="obd_data" domainObjectName="ObdData" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context> </generatorConfiguration>