java ssm项目 如何在项目启动时 建立一个socket链接。并在项目中可以随时调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ssm项目 如何在项目启动时 建立一个socket链接。并在项目中可以随时调用相关的知识,希望对你有一定的参考价值。

我们是做一个代理服务器 给手机端提供服务,接收到手机端请求后 我们需要通过socket 向socket服务器获取数据 然后处理后在返回给手机端 。
我打算是这样的 :项目启动,开启socket并链接上socket服务器,然后开启一个线程 sss,监听返回的数据。--当手机端请求过来后 开启线程aaa 调用socket输出流 发送命令,aaa等待阻塞, 当socket服务器返回数据后 sss获取到数据 将数据处理后 将数据传给aaa aaa返回给客户端 线程结束 。
请问有没有类似的例子 或者 别的思路什么的 ?

你的问题的重点是项目启动时创建socket,只要socket创建成功就能通过tcp或udp协议进行访问了。如何项目启动时创建可以有2种方法:

    创建一个继承了ServletContextListener接口的类,在contextInitialized方法里建立socket server端

    新建一个Servlet,并设置<load-on-startup>0</load-on-startup>,在service方法里建立socket server端。

参考技术A 做一个长连接就好呗

使用idea+gradle建立SSM项目

目录:  一、创建一个gradle项目

       二 、在gradle中创建SSM项目

 

 

一 、创建一个gradle项目

第一步:

打开我们的IDEA工具,选择创建一个新项目

 技术图片

第二步:这里会让你选择创建一个什么项目,idea会根据选择的不同从而创建不同的项目目录和初始文件,此处我们选择gradle,并选中web,然后点击Next进入下一步。

这里要介绍一下gradle,gradle是一个开源的项目自动化构建工具,和maven功能类似,默认也是使用maven的仓库。具体细节此处不做赘述。

技术图片

第三步:此处会要求输入GroupID和ArtifacID。Next

GroupId就是maven和gradle添加依赖时需要填写的Group,在简历maven项目的时候也会要求填写

ArtifactId也是maven中需要填写的

Version也是,新建的项目默认1.0就好

技术图片

第四步:选择gradle,IDEA默认有gradle,可以不用选择,如果需要使用自己安装的gradle,那么选择"Use local gradle distribution",然后选择gradle的安装路径

(PS:建议要有一个自己安装的版本,如果在加载其他gradle项目的时候选择默认版本,会导致idea去下载该项目之前开发所使用的版本,而数据源是在国外,可能会极慢。)

技术图片

第五步:"Project location"是项目生成的路径,项目会被生成到这个路径下面,这里直接点击"Finish"完成

技术图片

这里是gradle在进行首次构建,为项目创建初始目录等,此处如果没有选择使用自己安装的gradle则可能自动下载,根据网络情况需要等待的时间不一(也有可能会一直等待,所以建议提前安装自己的gradle)。

技术图片

构建完成之后的目录结构如下

技术图片

 

gradle项目的建立到这里结束,其中有一个bulid.gradle文件,这个文件是用来添加包依赖的,和maven的pom.xml作用一样

 

二 、在gradle中创建SSM项目

第一步:为项目设置Tomcat服务器

技术图片

技术图片

Name这里输入Tomcat的命名(这个随便是什么,你喜欢就好),然后在"Application server"处选择Tomcat的安装路径,

然后Tomcat的端口号等,这里默认8080,然后点击"Deployment"。

技术图片

添加需要使用这个Tomcat发布的Artifact

技术图片

这里选择带"(exploded)"后缀的,带exploded后缀在打war包以后是可以直接打开看war内的内容的,而另一个不行(如果我没记错的话,记错了不要喷我)。

技术图片

上一步结束后会来到这里,这里设置访问项目的URL,填"/"就是是用默认的访问地址,IP:端口。

举个例子,如果填/demo,按照上面配置的地址,localhost:8080,则访问时应该是http://localhost:8080/demo作为整个后端接口url的前缀

技术图片

到这里Tomcat就设置好了。

 

第二步:在gradle中添加SSM所依赖的jar包,打开bulid.gradle文件,在

dependencies{
}

中将以下代码贴入其中。

compile ‘log4j:log4j:1.2.17‘
compile ‘org.slf4j:slf4j-api:1.7.25‘
compile ‘org.slf4j:slf4j-simple:1.7.25‘
compile ‘net.logstash.log4j:jsonevent-layout:1.7‘
compile ‘org.apache.tomcat:tomcat-servlet-api:8.0.24‘
compile ‘jstl:jstl:1.2‘
compile ‘org.aspectj:aspectjweaver:1.8.6‘

compile ‘org.springframework:spring-beans:4.1.7.RELEASE‘
compile ‘org.springframework:spring-web:4.1.7.RELEASE‘
compile ‘org.springframework:spring-webmvc:4.1.7.RELEASE‘
compile ‘org.springframework:spring-tx:4.1.7.RELEASE‘
compile ‘org.springframework:spring-test:4.0.5.RELEASE‘
compile ‘org.springframework:spring-jdbc:4.1.7.RELEASE‘

compile ‘org.mybatis:mybatis-spring:1.2.3‘
compile ‘org.mybatis:mybatis:3.3.0‘

compile ‘mysql:mysql-connector-java:5.1.36‘
compile ‘com.alibaba:druid:1.0.15‘

compile "com.fasterxml.jackson.core:jackson-databind:2.2.3"
compile "com.fasterxml.jackson.core:jackson-annotations:2.2.3"
compile "com.fasterxml.jackson.core:jackson-core:2.2.3"

providedCompile ‘javax.servlet:servlet-api:2.5‘

testCompile group: ‘junit‘, name: ‘junit‘, version: ‘4.12‘

然后执行这段代码,IDEA会自动下载这些jar包。耐心等待。。。。。。。

(此处会使用默认的maven仓库下载包,该仓库在国外服务器,不同网络访问速率不一,如果很慢,请更换国内的仓库,更换方法百度或谷歌即可)

有些刚用idea的兄弟们可能会发现没有下图右侧的工具栏,此时点击idea窗口左下角的方块小图标就有了

技术图片

 

完成之后会发现左侧的"External Libraries"里面出现了我们要的jar包

技术图片

 

第三步:建立SSM的包结构,在main目录下建立"java","resources"两个包,前者用来存放java源码文件,后者用来存放配置文件

技术图片

 

接下来就是如何在该目录中将SSM的demo跑起来。

首先贴一下我已经建好了的目录

技术图片

首先是新建SSM需要的配置文件

log4j.properties 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
log4j.rootLogger=INFO,A1,app
 
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%p %d %X{uuid} [%c{1} %L] - %m%n
 
log4j.appender.app=org.apache.log4j.DailyRollingFileAppender
log4j.appender.app.Encoding=UTF-8
log4j.appender.app.File=/data/tomcat_logs/app.log
log4j.appender.app.DatePattern=‘.‘yyyy-MM-dd
log4j.appender.app.layout=net.logstash.log4j.JSONEventLayoutV1
 
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

 

以上是关于java ssm项目 如何在项目启动时 建立一个socket链接。并在项目中可以随时调用的主要内容,如果未能解决你的问题,请参考以下文章

java病历管理系统

ssm班级网站

java角色登录管理系统

系统架构演化,改造ssm项目

如何解决tomcat启动 ssm项目出现乱码

使用idea+gradle建立SSM项目