您的位置:首页 > 编程语言 > Java开发

storm与spring结合开发

2016-12-08 00:00 246 查看
摘要: storm结合spring环境开发,记录遇到的问题以及解决方案

一、storm引入pom.xml注意用log4j2版本,防止与storm自己的log4j2冲突

即storm日志这块直接用storm本身的不需要额外加

<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
二、spring容器单例实现,保证每个插槽,即jvm仅有一个spring容器

**
*
* spring上下文单例实现,传说中的双重效验锁
*
* @author lli
* @version [版本号, 2016年9月21日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class SingletonCTX {
private static Logger                                  LOGGER = LoggerFactory.getLogger(SingletonCTX.class);
private volatile static ConfigurableApplicationContext CTX;

private SingletonCTX() {}

public static ConfigurableApplicationContext getInstance() {
if (CTX == null) {
synchronized (SingletonCTX.class) {
if (CTX == null) {
CTX = new ClassPathXmlApplicationContext("applicationContext.xml");
LOGGER.info("------------------------------加载Spring环境。-----------------------------");
}
}
}
return CTX;
}
}

三、打包发布问题

开发环境项目分包如下

parent
domain
core
util
storm

storm pom.xml

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.wttech.gnss.storm.topology.StormTopology</mainClass>
</manifest>
</archive>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>

与pom.xml同级文件assembly.xml

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <!-- TODO: a jarjar format would be better -->
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<includes>
<include>com.wttech.gnss:gnss-core</include>
<include>com.wttech.gnss:gnss-msg</include>
<include>com.wttech.gnss:gnss-storm</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>

打包命令 assembly:assembly

注意打完后 只要**-jar-with-dependencies.jar 但是这个jar所需依赖包并没打进去,需要把所需要的第三方jarcopy到每个节点的storm的extbin目录下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  storm与spring整合