启动的时候 在 boot_class 中有个:com.sankuai.qcs.regulation.shanghai.App 这是spring boot的配置,在 bin/run_main.sh中 有配置:
${EXEC_JAVA} ${boot_class} 2>&1
这样在启动的时候就会走:方法:
com.sankuai.qcs.regulation.shanghai.App;
里面的main方法;
在main里面有个:
classpath:application.xml;
在application.xml中有个:添加了注解的标签:
<task:annotation-driven/>
所以开始使用注解初始化:
com.sankuai.qcs.regulation.shanghai.service.impl;里面的方法:
@PostConstruct private void start() { try { Properties successTopicProps = new Properties(); successTopicProps.setProperty(ConsumerConstants.MafkaBGNamespace, "waimai"); successTopicProps.setProperty(ConsumerConstants.MafkaClientAppkey, "com.sankuai.qcs.data.integration"); callBackProducer = MafkaClient.buildProduceFactory(successTopicProps, "dache.regulation.traffic.data"); Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { batchSendTask(); } }, 1000, 1000); } catch (Throwable throwable) { LOGGER.error("BatchSendService#start init mafka producer error", throwable); } }
请注意前面有个:
@PostConstruct 它的意思是在加载bean的时候就开始 先执行方法:
start
然后在pom.xml中有个:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>qcs.service.regulation</finalName>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<mainClass>com.sankuai.qcs.regulation.shanghai.App</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
里面的mainClass指的是:这个插件在在打包的时候要调用mainClass;