Spring Boot的启动与调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot的启动与调用相关的知识,希望对你有一定的参考价值。

【眼】

1、启动Spring Boot 的一种方式
服务启动类

package com.npc.rest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

/**
 * Frozen
 * 2020-1-29
 */

/**
 * 之前用户使用的是3个注解注解他们的main类。
 * 分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。
 * 由于这些注解一般都是一起使用,
 * spring boot提供了一个统一的注解@SpringBootApplication。
 * @SpringBootApplication =
 * (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。
 * 分开解释@Configuration,@EnableAutoConfiguration,@ComponentScan。
 *
 * 1、@Configuration:提到@Configuration就要提到他的搭档@Bean。
 * 使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
 * <beans>
 *     <bean id = "car" class="com.test.Frozen">
 *         <property name="red" ref = "red"></property>
 *     </bean>
 *     <bean id = "ant" class="com.test.RedAnt"></bean>
 * </beans>
 *  相当于:
 * @Configuration
 * public class Conf {
 *     @Bean
 *     public Car car() {
 *         Frozen item = new Frozen();
 *         item.setRed(redant());
 *         return item;
 *     }
 *     @Bean
 *     public RedAnt redant() {
 *         return new RedAnt();
 *     }
 * }
 * @Configuration的注解类标识这个类可以使用Spring
 * IoC容器作为bean定义的来源。
 * @Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,
 * 该对象应该被注册为在Spring应用程序上下文中的bean。
 * 2、@EnableAutoConfiguration:
 * 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,
 * 通常会自动根据你的类路径和你的bean定义自动配置。
 * 3、@ComponentScan:
 * 会自动扫描指定包下的全部标有@Component的类,并注册成bean,
 * 当然包括@Component下的子注解@Service,@Repository,@Controller。
 */
@SpringBootApplication
@ImportResource(value = {"classpath:css-npc-web.xml"})//引入其他资源,加不加依情况而定
public class FrozenApplication {
        public static void main(String[] args) {
                SpringApplication.run(FrozenApplication.class, args);
        }
}

方法实现类

package com.npc.rest;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

/**
 * Frozen
 * 2020年1月29日17:03:31
 * 服务实现类
 */

/**
 * @RestController = @Controller + @ResponseBody组成,
 * 等号右边两位同志简单介绍两句,就明白我们@RestController的意义了:
 * @Controller
 * 将当前修饰的类注入SpringBoot IOC容器,
 * 使得从该类所在的项目跑起来的过程中,这个类就被实例化。
 * @ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,
 * 会以Json字符串的形式返回给客户端
 */
@RestController
@RequestMapping("/redant")
@Slf4j
public class FrozenTest {
        @GetMapping("/hoyl")
        public void genToken() {
                System.err.println("时间2020年1月29日16:58:15,测试数据");
                for (int i = 0; i < 10; i++) {
                        Date date = new Date();
                        long times = date.getTime();
                        System.err.println("时间测试数据:"+times);
                        log.info("时间测试数据:"+times);
                }
        }
}

【PS:关于 @ Slf4j我有话说】
1、@ Slf4j这玩意是做什么的?
答:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;
你想用它,你得加入依赖包:

 <dependency>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.16.16</version>
    </dependency>

等等,周云鹏有话说:“你以为这样就可以正常使用了吗?那你就大错特错了!”
你会发现,这样还会报错。没法使用,你得下载“老妈博客lombok”插件。
技术图片

【望】

开始调用吧,小宝贝!
前面咱们讲到,端口号呀,服务号呀,已经配置好了。
加载浏览器的地址中,把实现类的也加上,把具体方法的也加上。
技术图片

OK、调用完成
技术图片

PS:刚刚讲述的类,可以通过开发工具生成!不做讲解

那么,还有人问了:我想将数据返回到前台!
答:你就不会自己试试啊,把void变为有值返回不就可以了。
来个许巍的“空谷幽兰”:

@GetMapping("/hoyl")
public String genToken() {
    System.err.println("时间2020年1月29日16:58:15,测试数据");
    for (int i = 0; i < 10; i++) {
        Date date = new Date();
        long times = date.getTime();
        System.err.println("时间测试数据:"+times);
        log.info("时间测试数据:"+times);
    }
    return "纵有红颜 百生千劫 难消君心 万古情愁 青峰之巅 " +
            "山外之山 晚霞寂照 星夜无眠 如幻大千 惊鸿一瞥 " +
            "一曲终了 悲欣交集 夕阳之间 天外之天 梅花清幽 " +
            "独立春寒 红尘中 你的无上清凉 寂静光明" +
            " 默默照耀世界 行如风 如君一骑绝尘 " +
            "空谷绝响至今谁在倾听 一念净心 花开遍世界" +
            " 每临绝境 峰回路又转 但凭净信 自在出乾坤 恰似如梦初醒" +
            " 归途在眼前 行尽天涯 静默山水间 倾听晚风 拂柳笛声残 " +
            "踏破芒鞋 烟雨任平生 慧行坚勇 究畅恒无极!";
}

技术图片

以上是关于Spring Boot的启动与调用的主要内容,如果未能解决你的问题,请参考以下文章

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段

Spring Boot的启动与调用

Spring Boot 应用启动后调用方法

Spring boot:thymeleaf 没有正确渲染片段