最近开始研究了下Spring Boot,简单写了个Demo。中途也遇到了一些坑。跟大家分享下。

如果你用了IDEA后,你会发现,Eclipse已经渐渐地要离开自己的怀抱中了。丰富的插件、智能提示、灵活的快捷键、多功能调试......简直是完美,如果非要挑剔,我只能说非社区版是收费版了。

一、环境搭建


Spring Boot 的搭建非常简单。如果想自己纯手动搭建,也不会话费多长时间。以下分享主要是用IDEA搭建。


环境:

  • IDEA 官网下载,最好用Ultimate版本收费版,注册码问度娘,一般都是一年的试用期。
  • JDK1.7+ 官网下载。 至少1.7版本。
  • Maven 官网下载


以图说话:











此处图省略,

springboot金额扣减_配置文件

springboot金额扣减_官网_02

springboot金额扣减_配置文件_03

springboot金额扣减_官网_04

springboot金额扣减_springboot金额扣减_05

最后finish .构建完成后,默认是maven。


启动:


点击一下三角形启动,或者鼠标右键放到类名,执行run操作,或快捷键shift+F10或Ctril+Shift+F10




二、客户端请求Spring Boot



新建个TestController类,写个请求,返回helloworld,编码完成后,启动服务,访问页面http://localhost:8080/hello就会出现hello World



注:

  1. RestController: 相当于@Controller、@ResponseBody的结合,当然还有写其他标记型注解,即@Target @Retention @Documented 
  2. @Controller: 控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.@Controller只是定义了一个控制器,而使用@request Mapping注解的方法才是真正处理业务请求的方法。
  3. @ResquestBody:读取Request请求的body部分的数据,使用系统默认配置HttpMessageConverter进行解析,然后吧响应的数据绑定到要返回的对象上。
  4. @Target: 首先了说下元注解,即注解的注解。包含@Target @Retention @Documented @Inherited四种。、@Target:定义注解的作用目标。多个用大括号,如                    @Target({ElementType.TYPE,ElementType.METHOD})的写法。 // 接口、类、枚举、注解 // 字段、枚举的常量 // 方法 // 方法参数 // 构造函数 // 局部变量 // 注解 // 包
  5. Retention(RetentionPolicy.RUNTIME):盖住姐会在class字节码文件中存在,在运行时可以通过放射机制获取。直观点,反编译文件能看到该注解。
  6. @Document:说明该注解将被包含在javadoc中。即说明是属于公共的API文档
  7. @Inherited:说明子类可以继承父类中的该注解



springboot金额扣减_配置文件



三、配置文件


一般配置文件,我们都用properties来写,但springBoot1.3后开始推荐使用yaml。后缀名可用yml简写也可以用yaml。yaml可读性强,又上下层次结构,比xml看起来方便。数遍提下,最近公司用yaml写前端模板文件,真的不适合,导致后来直接放弃,个人觉得模板还不如用jade,毕竟有css基础的人都会写。Spring默认加载applicantion.yaml(可以是yml或properties后缀名)。如果配置多环境,可以建立application-XX.yaml文件,但入口还是application.yaml文件,但需要在该文件配置spring.profiles.active = XX。当然还有一种方式,直接全部写到application.yaml文件里。但要 


---


spring


这样的格式来区分。


单文件

springboot金额扣减_官网_07

springboot金额扣减_springboot金额扣减_08

多个文件

springboot金额扣减_配置文件_09

springboot金额扣减_配置文件_10

springboot金额扣减_springboot金额扣减_11

springboot金额扣减_spring_12

springboot金额扣减_配置文件_13

springboot金额扣减_spring_14

springboot金额扣减_配置文件_15

多环境的配置,另外一种配置文件写法如下:

springboot金额扣减_springboot金额扣减_16


 总结:

1.配置文件注意空格

2.@ConfigurationProperties(prefix="girl")注解,IDE会提示Spring Boot Configuration Annotation Procesor not foubnd in classpath的警告,可以在maven的pom.xml添加依赖,具体参考https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor的官方介绍".3 Generating your own meta-data using the annotation processor"


@ConfigurationProperties的类时,就不要在属性上加上@value注解。


<!-- spring-boot-configuration-processor 不影响ConfigurationProperties注解使用 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>