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(转)(代码片段