微服务2-[springboot应用目录][2019-11]

xiaoxiao2022-06-11  64

springboot核心特性

组件自动装配:WebMvc、WebFlux、JDBC嵌入式web容器:tomcat,jetty,undertower 使用java -jar可运行生产准备特性:指标,健康检查(磁盘,文件系统),外部化配置文件

®自动装配解析 作者:说话的方式简单点丶


干货整理

前端

1.springboot整合thymeleaf 作者:橘子味的阳光

应用/工具

1.springboot整合定时任务 — 作者:橘子味的阳光

2.springboot整合邮件系统 — 作者:橘子味的阳光

3.springboot整合fastjson — 作者:橘子味的阳光

4.拦截器(切面,拦截器,过滤器) — 作者:橘子味的阳光

5. @Validated表单验证,AOP日志,全局异常处理 作者:橘子味的阳光

6.springboot生成全局唯一id — 作者:CodeSheep99

7. 定时计划,定时任务调度 ----橘子味的阳光

8. Lommok

9. actuator监控

10. Http连接池

11. Spring 应用监听事件Listener (启动引擎)

事件机制 ,观察者设计模式,比下面的接口先执行

12. CommandLineRunner

Springboot用初始化后,去执行一段代码块逻辑 这段初始化代码在整个应用生命周期内只会执行一次。 使用@Order(1) 排序

13. 解析xml

https://www.cnblogs.com/wuyun-blog/p/7799551.html


ORM

1.springboot整合mybatis(1.配置文件2.注解)

连接Mysql 作者:saytime 连接PostgreSQL

Mybatis执行sql https://blog.csdn.net/lv842586821/article/details/80581092

2.springboot整合jpa,hibernate — 作者:橘子味的阳光


[注解 目录]

1.@SpringBootApplication

组合注解 包含: @Configuration 表明该类使用Spring基于java配置 @ComponentScan 扫描组件,使组件注册到spring容器中 @EnableAutoConfiguration 开启自动配置

2. @Transactional

事务注解 详解!!!

3. @Bean

Spring中最核心的bean注解之一 使用@Bean 注解表明myBean需要交给Spring进行管理 设置bean的初始化,注销的方法

@Bean(initMethod = "init", destroyMethod = "destroy") public MyBean myBean(){ return new MyBean(); }

@profile,@scope,@lazy,@depends-on @primary learn more

3. 处理请求注解

A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; B、处理request header部分的注解: @RequestHeader, @CookieValue; C、处理request body部分的注解:@RequestParam, @RequestBody;

@RequestParam(value="", required=true, defaultValue="") 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST; 将请求参数绑定至方法参数 (1)value:请求参数名(必须配置) (2)required:是否必需,默认为 true,即 请求中必须包含该参数,如果 没有包含,将会抛出异常(可选配置) (3)defaultValue:默认值,如果设置了该值,required 将自动设为 false, 无论你是否配置了required,配置了什么值,都是 false(可选配置) @RequestBody 该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;

D、处理attribute类型是注解: @SessionAttributes, @ModelAttribute; E、处理cookie @CookieValue(value = "killPhone", required = false)

@RestController = @ResponseBody + @Controller 返回具体数据类型而非跳转:@ResponseBody @RequestMapping 该注解是用来映射一个 URL 到一个 类 或一个特定的处理方法 上 。

4. @ConditionalOnProperty

其中@ConditionalOnProperty是指在application.yml里配置的属性是否加载 https://blog.csdn.net/u010002184/article/details/79353696

5.@CrossOrigin

Spring Framework 4.2 GA为CORS提供了第一类支持,使您比通常的基于过滤器的解决方案更容易和更强大地配置它。所以springMVC的版本要在4.2或以上版本才支持@CrossOrigin

controller方法的CORS配置,您可以向@RequestMapping注解处理程序方法添加一个@CrossOrigin注解,以便启用CORS(默认情况下,@CrossOrigin允许在@RequestMapping注解中指定的所有源和HTTP方法)

其中@CrossOrigin中的2个参数:

origins : 允许可访问的域列表 maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。

@CrossOrigin(origins = "http://domain2.com", maxAge = 3600)

6. 配置文件优先级

application.properties和application.yml文件可以放在一下四个位置:

外置,在相对于应用程序运行目录的/congfig子目录里。 外置,在应用程序运行的目录里 内置,在config包内 内置,在Classpath根目录

同样,这个列表按照优先级排序,也就是说,src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性,此外,如果你在相同优先级位置同时有application.properties和application.yml,那么application.yml里面的属性就会覆盖application.properties里的属性。

7.@PropertySource

为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息,这里在resources目录下创建配置文件my-web.properties

com.name=testName com.password=123 import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component @PropertySource("classpath:/my-web.properties") @ConfigurationProperties(prefix = "com") public class ConfigBean { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

spring boot1.5以上版本@ConfigurationProperties取消了location需要用@PropertySource来指定自定义的资源目录。

prefix:指定配置文件中键名称的前缀(我这里配置文件中所有键名都是以web.开头)

8.@ManagedResource

https://blog.csdn.net/yaerfeng/article/details/28232435

9.@JsonIgnoreProperties

@JsonIgnore //返回时排除掉这个字段 https://blog.csdn.net/russle/article/details/84147236

10. @LocalServerPort

通过报错可知

Could not resolve placeholder 'local.server.port' in value "${local.server.port}"

11. @PreDestroy 和 @PostConstruct

只有一个方法可以使用此注释进行注解; 被注解方法不得有任何参数; 被注解方法返回值为void; 被注解方法不得抛出已检查异常; 被注解方法需是非静态方法; 此方法只会被执行一次;

import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @Component public class Test { /** * 构造方法执行之后,调用此方法 */ @PostConstruct public void init(){ System.out.println("@PostConstruct方法被调用"); } /** * spring容器销毁的时候需要关闭线程,清理资源 */ @PreDestroy public void preDestroy() { System.out.println("@preDestroy方法被调用"); } }

12. @ConfigurationProperties 和 @Value

区别详解

转载请注明原文地址: https://www.6miu.com/read-4931778.html

最新回复(0)