前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot学习 - 初始化项目及一些基础配置

Spring Boot学习 - 初始化项目及一些基础配置

作者头像
Li_XiaoJin
发布2022-06-10 20:29:59
4460
发布2022-06-10 20:29:59
举报
文章被收录于专栏:Lixj's Blog

最近在GitHub看到一个系统学习Spring Boot的项目,想到自己基础有点薄弱,重新学习一下吧,go!

一、开启Spring Boot

构建项目的方式有很多,这里我用的是使用 http://start.spring.io/ 来构建一个简单的Spring Boot项目。

选择自己需要的Spring版本,生成jar包还是war包的方式,JDK的版本等等

有一些依赖可以选

最后点击 GENERATE 可下载生成好的项目压缩包,解压出来就可以用了

然后用IDEA导入打开,第一次导入会下载比较多依赖,比较慢

直接在启动类编写一个入口,(正常情况下应该在controller里面写),这里偷懒

代码语言:javascript
复制

@RestController
@SpringBootApplication
public class SpringdemoApplication {

    @RequestMapping("/")
    String index() {
        return "hello spring boot";
    }

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

}

启动项目

访问 http://localhost:8080/

打包的话

完成后得到jar包

可以在本地用控制台用命令直接启动

代码语言:javascript
复制
java -jar springdemo-0.0.1-SNAPSHOT.jar

二、一些基础配置

1. 启动banner图案

Spring Boot项目在启动的时候会有一个默认的启动图案

这个banner可以自己定制,也可以关闭不显示

(1)设置的话可以把这个图案修改为自己想要的。在src/main/resources目录下新建banner.txt文件,然后将自己的图案黏贴进去即可。ASCII图案可通过网站 http://www.network-science.de/ascii/ 进行生成。

(2)关闭的话,在启动类进行设置,将 BannerMode 设置为 OFF

代码语言:javascript
复制
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringdemoApplication.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
    }
2. 全局配置文件

在src/main/resources目录下,Spring Boot提供了一个名为application.properties的全局配置文件,可对一些默认配置的配置值进行修改。

Spring Boot允许我们在application.properties下自定义一些属性,比如:

代码语言:javascript
复制
lixj.blog.name=mrbird's blog
lixj.blog.title=Spring Boot

定义一个BlogProperties Bean,通过@Value("${属性名}")来加载配置文件中的属性值

代码语言:javascript
复制
@Component
@Data
public class BlogPropertiesBean {

    @Value("${lixj.blog.name}")
    private String name;

    @Value("${lixj.blog.title}")
    private String title;


}

这里可以引入 lombok 插件,可以省略set和get方法方法如下:

(1)IDEA按照 lombok 插件,教程bing搜索

(2)在pom.xml引入依赖

(3)使用时在类上加 @Data 注解,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

代码语言:javascript
复制
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>

编写IndexController,注入该Bean:

代码语言:javascript
复制
@RestController
public class IndexController {

    @Autowired
    private BlogPropertiesBean blogPropertiesBean;

    @RequestMapping("/test")
    String idnex() {
        return blogPropertiesBean.getName() + "," + blogPropertiesBean.getTitle();
    }
}

如果直接启动后,访问 http://localhost:8080/test 会有报错

这里要在启动类加上包的路径,否则无法扫描到

配置好后重新启动后再访问 http://localhost:8080/test 就正常了

在属性非常多的情况下,也可以定义一个和配置文件对应的Bean:

代码语言:javascript
复制
@Data
@ConfigurationProperties(prefix = "lixj.blog")
public class ConfigBean {
    private String name;

    private String title;

    private String wholeTitle;
}

通过注解@ConfigurationProperties(prefix="lixj.blog")指明了属性的通用前缀,通用前缀加属性名和配置文件的属性名一一对应。

除此之外还需在Spring Boot入口类加上注解@EnableConfigurationProperties({ConfigBean.class})来启用该配置:

代码语言:javascript
复制
@RestController
@SpringBootApplication
@EnableConfigurationProperties({ConfigBean.class})
@ComponentScan(basePackages = {"com.example.lixj"})
public class SpringdemoApplication {

    @RequestMapping("/")
    String index() {
        return "hello spring boot";
    }

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

之后便可在IndexController中注入该Bean,并使用了:

代码语言:javascript
复制
@RestController
public class IndexController {

    @Autowired
    private BlogPropertiesBean blogPropertiesBean;

    @Autowired
    private ConfigBean configBean;

    @RequestMapping("/test")
    String idnex() {
        return blogPropertiesBean.getName() + "," + blogPropertiesBean.getTitle();
    }

    @RequestMapping("/test1")
    String index1() {
        return configBean.getName() + "," + configBean.getTitle() + "<br/>" + configBean.getWholeTitle();
    }
}

属性间的引用 在application.properties配置文件中,各个属性可以相互引用,如下:

代码语言:javascript
复制
lixj.blog.name=LIXJ
lixj.blog.title=I'm so hard
lixj.blog.wholeTitle=${lixj.blog.name}--${lixj.blog.title}
3.自定义配置

除了可以在application.properties里配置属性,我们还可以自定义一个配置文件。在src/main/resources目录下新建一个test.properties:

代码语言:javascript
复制
test.name=Lixj
test.age=18

定义一个对应该配置文件的Bean:

代码语言:javascript
复制
@Data
@Configuration
@ConfigurationProperties(prefix = "test")
@PropertySource("classpath:test.properties")
@Component
public class TestConfigBean {

    private String name;

    private int age;
}

注解@PropertySource("classpath:test.properties")指明了使用哪个配置文件。要使用该配置Bean,同样也需要在入口类里使用注解@EnableConfigurationProperties({TestConfigBean.class})来启用该配置。

5.通过命令行设置属性值

在运行Spring Boot jar文件时,可以使用命令java -jar xxx.jar --server.port=8081来改变端口的值。这条命令等价于我们手动到application.properties中修改(如果没有这条属性的话就添加)server.port属性的值为8081。

如果不想项目的配置被命令行修改,可以在入口文件的main方法中进行如下设置:

代码语言:javascript
复制
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringdemoApplication.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.setAddCommandLineProperties(false);
        app.run(args);
    }

修改端口也可以配置在 application.properties server.port=8081

使用xml配置 虽然Spring Boot并不推荐我们继续使用xml配置,但如果出现不得不使用xml配置的情况,Spring Boot允许我们在入口类里通过注解@ImportResource({"classpath:some-application.xml"})来引入xml配置文件。

6.Profile配置

Profile用来针对不同的环境下使用不同的配置文件,多环境配置文件必须以application-{profile}.properties的格式命,其中{profile}为环境标识。比如定义两个配置文件:

application-dev.properties:开发环境

server.port=8080

application-prod.properties:生产环境

server.port=8081

至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

如:spring.profiles.active=dev就会加载application-dev.properties配置文件内容。可以在运行jar文件的时候使用命令java -jar xxx.jar --spring.profiles.active={profile}切换不同的环境配置。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/springboot学习-初始化项目及一些基础配置

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、开启Spring Boot
  • 二、一些基础配置
    • 1. 启动banner图案
      • 2. 全局配置文件
        • 3.自定义配置
          • 5.通过命令行设置属性值
            • 6.Profile配置
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档