®自动装配解析 作者:说话的方式简单点丶
干货整理
事件机制 ,观察者设计模式,比下面的接口先执行
Springboot用初始化后,去执行一段代码块逻辑 这段初始化代码在整个应用生命周期内只会执行一次。 使用@Order(1) 排序
https://www.cnblogs.com/wuyun-blog/p/7799551.html
连接Mysql 作者:saytime 连接PostgreSQL
Mybatis执行sql https://blog.csdn.net/lv842586821/article/details/80581092
组合注解 包含: @Configuration 表明该类使用Spring基于java配置 @ComponentScan 扫描组件,使组件注册到spring容器中 @EnableAutoConfiguration 开启自动配置
事务注解 详解!!!
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
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 到一个 类 或一个特定的处理方法 上 。
其中@ConditionalOnProperty是指在application.yml里配置的属性是否加载 https://blog.csdn.net/u010002184/article/details/79353696
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)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里的属性。
为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义信息,这里在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.开头)
https://blog.csdn.net/yaerfeng/article/details/28232435
@JsonIgnore //返回时排除掉这个字段 https://blog.csdn.net/russle/article/details/84147236
通过报错可知
Could not resolve placeholder 'local.server.port' in value "${local.server.port}"只有一个方法可以使用此注释进行注解; 被注解方法不得有任何参数; 被注解方法返回值为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方法被调用"); } }区别详解