前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot需要知道的几个点

springboot需要知道的几个点

作者头像
田维常
发布2019-07-30 20:03:12
3370
发布2019-07-30 20:03:12
举报

现在关于springboot的使用可以说是如日中天的程度了,使用springcloud那一套的必须是springboot为基础,使用dubbo的很多伙伴也使用springboot了;所以有必要把springboot的一些知识调进行列一下。

入门

pom.xml中加入

代码语言:javascript
复制
代码语言:javascript
复制
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
         <--! 版本自选-->
<version>2.1.4.RELEASE</version>
<relativePath/> 
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
代码语言:javascript
复制

启动类

代码语言:javascript
复制
代码语言:javascript
复制
@SpringBootApplication()
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}
代码语言:javascript
复制

一个pom+一个注解+一行代码就搞定了。简单轻松的不行。

获取配置

如果想在配置文件中添加配置,怎么读取呢?比如说现在在application.properties文件中添加

代码语言:javascript
复制
代码语言:javascript
复制
user.service.url=http://www.aaa.com/
user.service.key=hjvj312ggbh21398hna
代码语言:javascript
复制

怎么获取到这些配置的呢?

两种简单的方式

代码语言:javascript
复制
//注解
@ConfigurationProperties
@Value

注解@Enable***

各种各样的@Enable**注解,比如:

代码语言:javascript
复制
代码语言:javascript
复制
@EnableAspectJAutoProxy
@EnableConfigurationProperties
@EnableCaching
@EnableWebMvc
代码语言:javascript
复制

这样就非常轻松的整合 Cache、AspectJ、MVC 配置、属性配置的功能。那么是否想过这些注解是如何实现对应的功能了?中间用到了什么原理呢?为什么有的需要添加注解,有的直接引入依赖就可以运行了呢?

各种***Aware

比如:

代码语言:javascript
复制
代码语言:javascript
复制
ApplicationContextAware
ResourceLoaderAware
MessageSourceAware
EmbeddedValueResolverAware
ApplicationEventPublisherAware
ServletConfigAware
代码语言:javascript
复制

Spring 通过接口回调的方式提供了多个非常方便的 XXAware 接口,方便在开发过程中获取到 Spring 上下文核心组件,而且这些 XXAware 都有一个共同的父接口 Aware。Aware 都是在 Bean 初始化回调前就进行回调的。

@EnableAutoConfiguration

Spring Boot 中所有的 AutoConfiguration 框架都需要依赖于 @EnableAutoConfiguration 注解,如果没有此注解,那么 Spring Boot 将不在有那么多的便利性。

代码语言:javascript
复制
代码语言:javascript
复制
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class<?>[] exclude() default {};
String[] excludeName() default {};
}
代码语言:javascript
复制

注解EnableAutoConfiguration 原理是什么?

自定义starter

如何自定义starter其实,还得先搞清楚starter是怎么玩的,原理是什么。

后面会一一道来,今天只是一个把springboot一些重要的知识点罗列出来。敬请期待!

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Java后端技术栈 微信公众号,前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 入门
  • 获取配置
  • 注解@Enable***
  • 各种***Aware
  • @EnableAutoConfiguration
  • 自定义starter
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com