zl程序教程

您现在的位置是:首页 >  后端

当前栏目

spring boot 启动脚本

SpringBoot 启动 脚本
2023-09-14 09:02:31 时间

启动的时候 在 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;