spring boot 源码分析(一) 案例

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】

spring boot 源码分析(一) 案例

前言

很久以前就想写点什么,可是一直没有合适的话题。今天终于决定以spring boot作为blog生涯的开篇,一方面总结自己的理解,另一方面也和广大猿友们交流探讨,以期提升。

第一个案例

准备

源码获取地址:https://github.com/spring-projects/spring-boot
pom.xml:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

demo

    package per.dyp;

    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.stereotype.*;
    import org.springframework.web.bind.annotation.*;

    @RestController
    @SpringBootApplication
    @RequestMapping("/rest")
    public class HelloController {

        @RequestMapping("/sayHello/{name}")
        public String sayHello(@PathVariable String name) {
            return "Hello " + name;
        }
        public static void main(String[] args) throws Exception {
            SpringApplication.run(HelloController.class, args);
        }
    }

运行main方法,浏览器输入http://localhost:8080/rest/sayHello/dyp 浏览器显示Hello dyp

@SpringBootApplication 注解源码

    package org.springframework.boot.autoconfigure;

    import java.lang.annotation.Documented;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Inherited;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.annotation.AliasFor;

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Inherited
    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    public @interface SpringBootApplication {

        Class<?>[] exclude() default {};

        String[] excludeName() default {};

        @AliasFor(annotation = ComponentScan.class, attribute = "basePackages")
        String[] scanBasePackages() default {};

        @AliasFor(annotation = ComponentScan.class, attribute = "basePackageClasses")
        Class<?>[] scanBasePackageClasses() default {};
    }

对注解感兴趣的可以自行研究,这里不进行表述


来源:http://ddrv.cn

赞(0) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » spring boot 源码分析(一) 案例

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏