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

SpringBoot3-日志

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Springboot和日志 考虑和jdbc和数据库驱动一样,我们抽象出一个日志的接口 常见的java日志 JUL,JCL,JBoss-logging,logback,log4j,log4j2,slf4j Java抽象 JCL,SLF4j,Jboss-logging Java实现 Log4j,JUL,Log4j2,logback 怎么选择选择SLF4j+Logback     阅读全文
fightinggg's avatar
fightinggg 4月 15, 2020

SpringBoot2-配置

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial springboot配置配置文件 配置文件的名字是固定的 application.propertiesapplicstion.yml YAML 是一个标记语言,不是一个标记语言 标记语言 以前的配置文件大多是xml文件,yaml以数据为中心,比json、xml等更适合做配置文件 这是yml 12server: port: 8081 这个是xml 123<server> <port>8081</port></server>     阅读全文
fightinggg's avatar
fightinggg 4月 15, 2020

SpringBoot1-介绍

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 微服务 讲大应用拆分成多个小应用 springboot介绍创建maven工程导入依赖123456789101112<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version></parent><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency></dependencies>     阅读全文
fightinggg's avatar
fightinggg 4月 15, 2020

springboot

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial SpringBoot与Web 先在idea中选择场景 springboot已经默认将这些常见配置好了,我们只需要在配置文件中指定少量配置就可以运行起来 然后我们可以开始编写业务代码了     阅读全文
fightinggg's avatar
fightinggg 4月 14, 2020

Java并发编程13-并发总结

    阅读全文
fightinggg's avatar
fightinggg 4月 13, 2020

java并发编程12-集合的线程安全类

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 集合的线程安全类遗留的线程安全类 Hashtable,Vector直接把同步加到方法上 修饰的安全集合 装饰器模式,Syncronize* JUC安全集合Blocking型 大部分实现基于锁并提供阻塞的方法     阅读全文
fightinggg's avatar
fightinggg 4月 12, 2020

java并发编程11-JUC

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial JUCAQS&emsp;&emsp; AbstractQueuedSynchronizer 是阻塞式的锁和相关的同步器工具的框架 ReentrantLock如何重入&emsp;&emsp; 用一个变量记录重入了多少次 NonfairSynclock&emsp;&emsp; cas ,成功就吧ouner改为自己,否则acquire,把自己放进链表中 acquire&emsp;&emsp; tryacquire,成功就结束,失败的话还会尝试几次,然后才park,并为前驱标记,让前驱记得唤醒自己,如果曾经被打断的话,会被忽略,再次进入aqs队列,得到锁以后会打断自己来再次重新打断     阅读全文
fightinggg's avatar
fightinggg 4月 12, 2020

java并发编程10-异步模式

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 异步模式-工作线程线程不足导致饥饿 有两个线程A,B,任务有两种,上菜和做菜,显然上菜要等待做菜,如果AB都在执行上菜,就没有更多的线程做菜了,这就导致了AB在死等,注意这不是死锁, 所以不同的任务类型应该用不同的线程池     阅读全文
fightinggg's avatar
fightinggg 4月 12, 2020

java并发编程9-JDK线程池

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial JDK的线程池 线程池状态,RUNNING,SHUTDOWN(不会再接受新任务了),STOP(立刻停止),TIDYING(任务执行完毕,即将TERMINATED),TERMINATED 构造函数1public ThreadPollExecutor(int corePoolsize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) 核心线程数量 最大线程数量 就急线程生存时间 时间单位 阻塞队列 线程工厂: 给线程起个名字 拒绝策略     阅读全文
fightinggg's avatar
fightinggg 4月 12, 2020