从零开始学SpringBoot2.x(02-第一个SpringBoot应用注意点)

在上一篇文章“第一个SpringBoot应用”中,已成功运行我们的第一SpringBoot应用。我们再来回顾一下之前第一个SpringBoot应用的工程目录,如下:

DemoApplication类,是使用IDEA创建应用时自动帮我们生成的,在之前运行时,我们对该类并没有关注太多,仅仅是通过其来启动应用。现在我们进入该类,来仔细观察一下,其内容如下:

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

可以看到,在类的上方有一个@SpringBootApplication注解,如果没有了解过SpringBoot的童鞋来说,该注解是陌生的。

那么它到底是干嘛用的呢?我们通过按住键盘的Ctrl+鼠标左键点击进入到注解内部进行查看,其内容如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
  //内容省略
}

我们可以发现,@SpringBootApplication注解是由@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan注解组合而成。

那么这三个注解分别又是干嘛用的呢?我们先进入@SpringBootConfiguration,如下:


@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}

可以看到,其实里面就是一个@Configuration注解,使用该注解修饰的类表示一个配置类,相当于我们之前配置Spring时的一个xml文件。

@EnableAutoConfiguration注解,从字面意思翻译过来就是“启用自动配置”,通过进入该注解并查看其文档描述,它的作用就是告诉SpringBoot,让SpringBoot根据我们引入的jar包(类)等信息包来“猜测”我们所要构建一个什么样的项目,并使用其提供的一些默认配置。@ComponentScan相当于我们之前xml配置用的<context:component-scan>标签。如果我们不对该注解指定任何参数,其默认扫描的包为其修饰类所在的包及其子包。所以我们的这个项目扫描的包为:com.example.demo包及其子包。

不信?我们可以来做个试验,把之前编写的HelloController移至example包下后,我们再来启动应用。如果没有意外,当然能启动,可是我们访问之前写的hello接口,结果如下:

我们的接口当然找不到啦,如果真想继续访问到我们的接口,可以修改启动类,自定义扫包路径,如下:

@SpringBootApplication(scanBasePackages = {"com.example"})
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

重启项目,重新访问接口,保证成功!(不成功肯定是你的不对,这个锅我不背,嘿嘿~)。

所以,在实际项目开发中,我们一般会在入口类所在的包下再细分其他业务模块,这样就能把我们定义的所有bean加载到容器当中了!

好,入口类我们暂且先关注到这里,再来想想,我们在开发当中,还需要经常修改哪些东西?嗯……端口号?是了,没错,实际的开发当中,有时候1台机器确实要运行好几个tomcat,或者我们并不想访问时还添加端口号,太麻烦!想要把端口号修改为80,那么SpringBoot怎么修改端口号呢?

我们再来回想一下我们的工程目录,貌似在resources目录下有个application.properties文件,嗯?properties文件?相信稍微有点经验的童鞋已然顿悟了,没错!就是在这里修改!但是SpringBoot官方并不推荐使用properties配置文件,而是推荐使用yml配置文件,至于什么是yml文件大家就自行查阅资料吧(主要是我了解的也不是很多)。

我们把application.properties文件的后缀改为.yml,如下:

然后打开该文件,在里面添加如下配置:

server:
  port: 80

重启项目后访问我们的hello接口,如下:

可以看到,我们使用默认的80端口访问成功!

好啦,今天就跟大家分享到这里,溜了溜了~

 

源码链接:

https://github.com/devilyang123/SpringBoot-Learning/tree/master/springboot-hello

 

 

欢迎关注我的个人公众号“笑笑是一个码农”,第一时间获取最新文章。

您的关注,就是支持我持续写作的最大动力!

还可以免费领取前后端全站学习视频资料呦~

个人微信号,如需添加微信,请备注来源,因为妈妈从小就告诉我不要随便跟陌生人聊天!(嘿嘿~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章