aware

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial AwareBeanNameAwarebeanNameAware可以获得容器中Bean的名称,作用于每一个Bean。当bean被创建的时候设置他的名字,在基本properties填充完成以后,init调用前执行 摘自: spring-beans:5.3.4 org.springframework.beans.factory.BeanNameAware Set the name of the bean in the bean factory that created this bean. Invoked after population of normal bean properties but before an init callback such as {@link InitializingBean#afterPropertiesSet()} or a custom init-method. 123456789101112package com.example.demo;import org.springframework.beans.factory.BeanNameAware;import org.springframework.stereotype.Component;@Componentpublic class BeanNameAwareDemo implements BeanNameAware { @Override public void setBeanName(String name) { System.out.println(name); }}     阅读全文
fightinggg's avatar
fightinggg 11月 03, 2020

webFlux

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Spring Boot Starter Webflux     阅读全文
fightinggg's avatar
fightinggg 10月 30, 2020

SpringBoot7-自定义starter

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 如何编写理清依赖自动配置@Configuration 指定这个是配置类@ConditionalOnxxx 在某些条件下才生效@AutoConfigureAfter 指定自动配置类的顺序@Bean 给IOC加组件@ConfiguretionProperties 结合相关的xxxProperties配置类来绑定配置@EnableConfigurationProperties 让xxxProperties生效加入到容器中讲自动配置类配置在META-INF/spring.factories中     阅读全文
fightinggg's avatar
fightinggg 4月 28, 2020

SpringBoot6-启动的源码分析

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 启动配置原理几个重要的事件回调机制 ApplicationContextInitializer SpringApplicationRunListener ApplicationRunner CommandLineRunner 启动流程1return new SpringApplication(primarySources).run(args); 创建SpringApplication对象 运行run方法 创建对象现在左边的参数是null 123456789101112public SpringApplication(Class<?>... primarySources) { this(null, primarySources);}public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { this.resourceLoader = resourceLoader; Assert.notNull(primarySources, "PrimarySources must not be null"); this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources)); this.webApplicationType = WebApplicationType.deduceFromClasspath(); setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class)); setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class)); this.mainApplicationClass = deduceMainApplicationClass();}     阅读全文
fightinggg's avatar
fightinggg 4月 28, 2020

SpringBoot5-数据访问

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 创建项目选择MySQL+JDBC+Web 链接数据库123456spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/jdbc driver-class-name: com.mysql.jdbc.Driver     阅读全文
fightinggg's avatar
fightinggg 4月 28, 2020

SpringBoot4-Web5-烂尾

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 需求员工列表|普通CRUD|restfulCRUD-|-|-查询|getEmp|emp…GET添加|addEmp?|emp…POST修改|updateEmp?|emp/{id}…PUT删除|deleteEmp?|emp/{id}…DELETE     阅读全文
fightinggg's avatar
fightinggg 4月 22, 2020

SpringBoot4-Web4-国际化

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 国际化 编辑国际化配置文件 使用ResourceBundleMessageSource管理国际化资源文件 在页面使用fmt:message取出国际化内容     阅读全文
fightinggg's avatar
fightinggg 4月 21, 2020

SpringBoot4-Web3-SpringMVC

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 扩展SpringMVC123456789101112<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:view-controller path="/hello" view-name="succcess"></mvc:view-controller> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/hello"/> <bean></bean> </mvc:interceptor> </mvc:interceptors></beans>     阅读全文
fightinggg's avatar
fightinggg 4月 18, 2020

SpringBoot4-Web2-模版引擎

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 模版引擎常见的模版引擎有JSP,Velocity,Freemarker,Thymeleaf SpringBoot推荐的Thymeleaf12345<!-- 模版引擎--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 视频中说这个版本有点低,是2.16的然鹅我用的SpringBoot2,已经是3.x了修改版本号,这招估计学了有用,这个能覆盖版本     阅读全文
fightinggg's avatar
fightinggg 4月 16, 2020

SpringBoot4-Web1-静态资源

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial SpringBoot与Web先在idea中选择场景SpringBoot已经默认将这些常见配置好了,我们只需要在配置文件中指定少量配置就可以运行起来然后我们可以开始编写业务代码了 SpringBoot与静态资源WebMvcAutoConfiguration打开WebMvcAutoConfiguration.java 1234567891011121314151617181920@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); return; } Duration cachePeriod = this.resourceProperties.getCache().getPeriod(); CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl(); if (!registry.hasMappingForPattern("/webjars/**")) { customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/") .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl)); } String staticPathPattern = this.mvcProperties.getStaticPathPattern(); if (!registry.hasMappingForPattern(staticPathPattern)) { customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern) .addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations())) .setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl)); }}     阅读全文
fightinggg's avatar
fightinggg 4月 16, 2020