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 "纵有红颜 百生千劫 难消君心 万古情愁 青峰之巅 " +
            "山外之山 晚霞寂照 星夜无眠 如幻大千 惊鸿一瞥 " +
            "一曲终了 悲欣交集 夕阳之间 天外之天 梅花清幽 " +
            "独立春寒 红尘中 你的无上清凉 寂静光明" +
            " 默默照耀世界 行如风 如君一骑绝尘 " +
            "空谷绝响至今谁在倾听 一念净心 花开遍世界" +
            " 每临绝境 峰回路又转 但凭净信 自在出乾坤 恰似如梦初醒" +
            " 归途在眼前 行尽天涯 静默山水间 倾听晚风 拂柳笛声残 " +
            "踏破芒鞋 烟雨任平生 慧行坚勇 究畅恒无极!";
}

原文地址:https://blog.51cto.com/13479739/2468576

时间: 2024-11-01 14:15:47

Spring Boot的启动与调用的相关文章

spring boot应用启动原理分析

spring boot quick start 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server. 如果之前没有使用过spring boot可以通过下面的demo来感受下. 下面以这个工程为例,演示如何启动Spring boot项目: git clone [email protected]:hengyunabc/spring-boot-demo.git mvn spring-b

spring boot无法启动,或者正常启动之后无法访问报404的解决办法

以前用spring boot都是用idea的自动创建,或者是用的Jhipster创建的,就没有深究怎么去搭建.但是今天晚上心血来潮,想自己搭一个demo来整合一些技术,于是就花一点时间来手动搭.因为今天网络有点不好,所以spring boot的官网一直打不开,也就导致了无法阅读官方文档,就按照自己的记忆去搭于是遇到了以下两个问题 一 启动不了,一直报错,而且报的错很多时候还不一样.我就不列出报的什么错了,spring boot已经这么集成化了,难道我都还要配错?肯定是细节,和代码没有关系.于是找

spring boot 项目启动无任何反应

遇到的问题 spring boot项目启动后无任何报错,ps有进程,nohub无日志 定位 更换jar包,问题依然存在,将jar包放到其他服务器,运行正常,排除打包问题 同服务器其他系统运行正常,但停止后不能再次启动,出现相同问题 怀疑日志级别设置有问题,或编码问题,修改log配置问题依然存在 重启系统,问题仍然存在 重装jdk,问题解决 原文地址:https://www.cnblogs.com/bincoding/p/10199782.html

Spring boot设置启动监听端口

一.直接看代码: 1 @Controller 2 @EnableAutoConfiguration 3 @ComponentScan 4 public class CallMain extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer { 5 private final static Logger logger = LoggerFactory.getLogger(CallMain.cl

关于spring boot项目启动报错问题

这次用了spring boot,项目在启动时报错,由于我用的是jdk 1.7 ,该项目默认的是jdk 1.8,所以要把下面这一系列配置改好才行.废话不多说,上图: 一看发现,项目环境没有配全,打开file->Project Structuer,找到Project ,把里面的jdk配置成你自己的. 还有Modules里面的的这几项: 然后找到file->setting-->Java Compiler 里面 这些都配置好才能起动main函数启动服务.

Spring Boot修改启动端口

spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境.可是当我们要同时启动2个springboot工程时,就会有问题,有可能会因为8080端口被第一个应用占用而导致第二个应用无法启动,这时就需要修改其中一个工程的启动端口. 可以通过实现EmbeddedServletContainerCustomizer接口来实现: public class Application extends SpringBootServletInitializer im

IDEA下spring boot+fremarker启动报错would dispatch back to the current handler URL [/hello] again. Check your ViewResolver setup!

详细报错代码(ps:标题中写不下报错主要代码) javax.servlet.ServletException: Circular view path [hello]: would dispatch back to the current handler URL [/hello] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default vie

Spring Boot 2 启动时加载properties文件

每个项目从开发到测试再到上线所需要的各种环境是不同的,这就需要维护相应的配置文件,比如properties或yml文件.有了配置文件后就要考虑如何与应用进行集成. 对于云环境来讲,项目发布需要打成镜像,再进行部署.如果把spring boot项目连同配置文件(变量)一起打入JAR包并不是一个很好的选择,我们的做法是JAR不包含配置文件,待启动镜像和JAR时将配置文件动态赋值给JAR包. 对于Spring Boot项目,有两种做法可以实现该目的: 1. --spring.config.locati

记一次spring boot项目启动时的依赖循环

奇怪的是在我Ubuntu的机器上打包到测试服务器上报错,而从另外一台windows机器打包时就没问题,刚开始还以为是maven和jdk的问题.报错的启动时日志如下: 2019-06-14 14:03:45,644 org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter [main] (LoggingFailureAnalysisReporter.java:38) DEBUG --> Application faile