Spring Boot (二)

Spring Boot 学习(二)

前面已经提到了如何创建一个新的Spring Boot项目,现在来继续学习~继续记录~~

我们新建一个项目后,会有自动生成的一个类,我这边是SpringBootDemoApplication.java
代码如下:

@SpringBootApplication
public class SpringBootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}

这是项目的入口类。接下来细说注解@SpringBootApplication
它是组合了@SpringBootConfiguration、@EnableAutoConfiguration以及@ComponentScan

1、@SpringBootConfiguration依然是一个组合注解,包括@EnableAutoConfiguration及其他多个注解。类似@Configuration注解,表明这个类是一个配置类。
2、@EnableAutoConfiguration表示让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置
3、@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。 如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,自动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因此你配置的这个Controller也没有意义。@ComponentScan是一个过滤器。
类上的注解@Configuration 是最新的用注解配置spring,也就是说这是个配置文件,和原来xml配置是等效的,只不过现在用Java代码进行配置了 加上一个@Configuration注解就行了,是不是很方便,不需要那么繁琐的xml配置了,这样基于注解的配置,可读性也大大增高了。

备注:

@SpringBootApplication注解的话,系统会去入口类的同级包以及下级包中去扫描实体类,因此我们建议入口类的位置在groupId+arctifactID组合的包名下。

定制Banner

下图就是我们启动Spring Boot后会在控制台看到的spring样式的Banner:
这里写图片描述

那么现在我不喜欢了。想要修改。

1.在src/main/resources下新建一个banner.txt文档
2.通过http://patorjk.com/software/taag网站生成需要的字符,将字符拷贝到步骤1所创建的txt文档中,比如我这里为Hello Sang!生成字符,如下:

这里写图片描述

然后将样式复制到banner.txt中。重新启动项目,会看到效果:
这里写图片描述

关闭Banner

其实很简单,只需要在项目的入口类中修改成如下代码:

package com.example.springbootdemo;

import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

@SpringBootApplication
public class SpringBootDemoApplication {
    public static void main(String[] args) {
        //修改Banner的模式为OFF
        SpringApplicationBuilder springApplicationBuilder = new SpringApplicationBuilder(SpringBootDemoApplication.class);
        springApplicationBuilder.bannerMode(Banner.Mode.OFF).run(args);
//      SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}

配置文件

1.修改Tomcat默认端口和默认访问路径

只需要在application.properties配置文件中添加:

server.port=9090
server.context-path=/hello

原来的访问路径是:http://localhost:9090/book
现在正确的访问路径是:http://localhost:9090/hello/book
我之前一直尝试用:http://localhost:9090/hello 结果是错的!!!!因为在全局配置里面配置的是全局!!!全局是端口号后面,然后还需要再加上@RequestMapping里的value值才可以。。

其他配置

  • 继续在application.properties中配置日志输出:
#日志输出
logging.file=/home/sang/workspace/log.log
logging.level.org.springframework.web=debug
  • 还是在application.properties中配置全局属性:
book.author=罗贯中
book.bookName=三国演义
book.pinYin=sanguoyanyi

注意!!一般在配置文件里面中文会乱码,但我这边为什么不会呢?因为做了配置了呀~
网别人家的博文里写到,在配置文件里继续配置如下代码:

server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8

但是我这边即使这样做了还是会乱码~至于原因我就不懂啦~
所以最终的解决方案还是按照以下操作:
File -> Settings -> Editor -> File Encodings
然后将Properties Files (*.properties)下的Default encoding for properties files设置为UTF-8,将Transparent native-to-ascii conversion前的勾选上:
这里写图片描述
我是只有这样做,然后就完全OK了,目前木有出现什么问题~
接下来添加Book实体类:
这里写图片描述
添加相对应的属性并提供getter和setter方法,如上图所示。
然后再在Controller中添加代码:

@RestController
public class HelloController {
    @Autowired
    private Book book;
    @RequestMapping("/book")
    public String hello() {
        return "Hello Spring Boot! The BookName is " + book.getBookName() + ";and Book Author is " + book.getAuthor() + ";and Book PinYin is " + book.getPinYin();
    }
}

接下来就是去启动项目啦~
最后通过浏览器访问:
这里写图片描述

pom.xml小分析

  • spring-boot-starter-parent 包含了大量配置好的依赖管理。
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
  • Java version

    据说Spring默认使用jdk1.6,而我想使用jdk1.8,要做如下配置:

<properties>
    <java.version>1.8</java.version>
</properties>
  • 添加spring-boot-starter-web依赖

    Spring通过添加spring-boot-starter-*这样的依赖就能支持具体的某个功能。我们这个示例最终是要实现web功能,所以添加的是这个依赖。

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

-添加spring-boot-maven-plugin插件

该插件支持多种功能,常用的有两种,第一种是打包项目为可执行的jar包。
在项目根目录下执行mvn package将会生成一个可执行的jar包,jar包中包含了所有依赖的jar包,只需要这一个jar包就可以运行程序,使用起来很方便。该命令执行后还会保留一个XXX.jar.original的jar包,包含了项目中单独的部分。
生成这个可执行的jar包后,在命令行执行java -jar xxxx.jar即可启动项目。

  • 启用热部署
    在开发过程中,修改代码后,需要重启项目才可调试验证,那么现在为了避免重复启动项目,我们可以启用热部署。
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>springloaded</artifactId>
    </dependency>

马马虎虎算是学完了第二课。。太少了,得加快速度了!!!
2018/01/24-25

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值