Spring
Spring
宇宙超级无敌程序媛
Talk is cheap, show me the code.
展开
-
Spring —— AOP与IOC
一、IoC & DI(一)IoCIoC——控制反转,是一种设计思想,我们要用一个对象时,不需要自己去创建,只需要告诉Spring的容器,由容器为我们创建。IoC的好处是,对象与对象之间是松散耦合的,方便测试,利于功能复用,更重要的是把程序的整体结构变得十分灵活(二)DIDI:依赖注入,即IoC容器可以动态的将一个对象注入到另一个对象中.依赖注入的方法有三种:接口注入(侵入性,不推荐)、构造注入、setter注入...原创 2021-08-21 21:38:14 · 143 阅读 · 0 评论 -
Spring —— 项目中连接MongoDB
参考Spring文档https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.nosql.mongodb引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-原创 2021-08-03 14:39:59 · 510 阅读 · 0 评论 -
SpringBoot —— 官方文档阅读记录(一)Getting Started
Spring Boot 去除了大量的 xml 配置文件,简化了复杂的依赖管理。Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式。简单、快速、方便。安装Spring-BootMaven安装 Gradle安装@ Restcontroller 和@Requestmapping 注解@ Restcontroller @ResponseBody + @Controller 将生成的字符串直接呈现回调...原创 2021-07-13 16:59:36 · 178 阅读 · 0 评论 -
Spring —— 官方文档阅读前期准备
Spring-Boot 官方文档地址https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.caching.provider.redis翻译插件 Chrome翻译插件主要使用以下两种:Google翻译用于具体某个单词的翻译,要梯子。彩云小译用于整体页面翻译,无需梯子。同时展示原文与翻译,排版优秀。...原创 2021-07-12 20:57:01 · 83 阅读 · 0 评论 -
Spring —— 接口太慢?使用Spring自带缓存!
首先要保证项目中已经接入的redis缓存。Redission的缓存接入教程可参考Redission —— 项目想接入缓存?3分钟即可!添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId>原创 2021-06-30 14:21:12 · 314 阅读 · 0 评论 -
Maven —— 项目依赖版本号管理(pom文件的进阶使用之bom)
总结图示dependencyManagementMaven —— dependencies与dependencyManagement的区别 在maven多模块项目中,可以在项目主目录下的pom文件 —— 图中的pom(主)中,使用dependencyManagement定义所有模块需要用到的依赖版本。 dependencyManagement只会影响现有依赖的配置,但不会引入依赖。在pom(主)中严禁直接使用depandencys预定义依赖,否则子model会...原创 2021-06-19 02:01:05 · 4878 阅读 · 0 评论 -
Maven —— 常用POM文件标签易懂总结
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0..原创 2021-05-13 17:45:51 · 449 阅读 · 0 评论 -
SpringBoot —— @PropertySource与@ImportResource的区别
问题@PropertySource与@ImportResource长得很像,作用也有一定类似,现在就来好好区分一下吧!@PropertySource加载自定义配置文件(*.properties或 *.yml),通常需要结合@Configuration注解共同使用。test.properties配置文件test.id=110test.name=test注入配置的类示例//表示当前类是一个自定义配置类,并添加为Spring容器的组件,这里也可以使用传统的@Component注原创 2021-05-10 17:22:44 · 382 阅读 · 0 评论 -
Spring —— 动态刷新配置ContextRefresher
在不启动服务的情况下获取最新的配置,那么它是如原创 2021-03-09 16:07:43 · 2719 阅读 · 0 评论 -
Spring注解 —— @Primary 和 @Qualifier
问题@Autowired默认按照类型进行注入。当一个接口有多个实现类时,使用@Autowired注解时会报org.springframework.beans.factory.NoUniqueBeanDefinitionException。代码示例接口public interface AbcService { public ABC getAbcById(int id);}实现类1@Service("abcService1")public class AbcImpl1 i原创 2021-03-01 18:07:32 · 468 阅读 · 0 评论 -
Spring —— Bean的scope(作用域)
问题scope用来配置spring bean的作用域,都有哪些配置,代表什么含义呢?解决singlenton Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例。 prototype 每一次请求都会产生一个新的bean实例。 request 每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HT...原创 2021-02-23 20:17:32 · 69 阅读 · 0 评论 -
Spring —— 利用BeanFactory实现单例模式
问题如何使用Spring中的BeanFactory实现单例模式?解决import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.BeanFactoryAware;import org.springframework.stereotype.Component;impo原创 2021-02-23 17:32:36 · 601 阅读 · 0 评论 -
Java —— 断言(以Spring的Assert为例)
问题Java中的断言适合什么场景?如何使用?解决当断言的条件为假的时候,程序会抛出异常,终止当前任务的执行。当这个关键字后面的条件为真的时候,程序继续执行下一句语句。示例(以Spring的Assert为例) import org.springframework.util.Assert; public void test(String a) { Assert.notNull(a,"字符串a为空 :("); }方法汇总Assert.notNull(Object ob原创 2021-02-23 17:07:47 · 729 阅读 · 1 评论 -
Maven —— 依赖的SNAPSHOT版本有什么作用?
问题在使用maven进行依赖管理时,有的版本号后面会带有"-SNAPSHOT",有什么作用呢?解决带有"-SNAPSHOT"表示使用的依赖为快照版本,不带"-SNAPSHOT"为正式版本。正式版本"abc-1.0"构建的时候会先在本次仓库中查找是否已经有了这个依赖库,若是没有的话才会去远程仓库中去拉取。假设项目中现在依赖"abc-1.0",在第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,之后再次构建都不会去访问远程仓库了。如果远程仓库中代码进行了修改,但版本号依旧叫"abc原创 2021-02-22 13:54:27 · 2089 阅读 · 0 评论 -
SpringBoot —— 启动时扫描的包
问题SpringBoot启动时会自动扫描哪些包?如何自定义配置SpringBoot启动时扫描的包呢?解决SpringBoot在启动时会自动扫描启动类所在包下的注解类。注意只要包名的开头和启动类的包名一致即可,即使与启动类不在同级目录下也可以被扫描。举例//启动类包名package A.B//可被扫描到的注解类package A.Bpackage A.B.C备注如果想改变启动类自动扫描的包,可以使用@ComponentScan指定扫描的包。@Compone原创 2021-02-02 15:22:34 · 1272 阅读 · 1 评论 -
Spring —— 如何获取系统环境变量与application配置文件中的变量?(EnvironmentAware)
问题如何获取系统环境变量与application配置文件中的变量?解决使用EnvironmentAware。实现接口 EnvironmentAware 并重写方法 setEnvironment 。代码public class EnvironmentAwareDemo implements EnvironmentAware { @Override public void setEnvironment(Environment environment) {原创 2021-01-26 21:22:00 · 1238 阅读 · 0 评论 -
Spring —— 拦截器(HandlerInterceptor、WebMvcConfigurer)
问题在项目开发过程中经常需要进行某些拦截:接口拦截以进行权限校验,参数校验等等。解决使用HandlerInterceptor定义拦截器,并把拦截器添加到WebMvcConfigurer配置器中。HandlerInterceptorSpringboot中的拦截器,里面共提供了三种方法。方法名 作用 preHandle 在执行请求之前被调用 postHandle 在处理器处理完请求之后,渲染视图之前被调用 afterCompletion 在..原创 2021-01-11 20:49:12 · 1086 阅读 · 0 评论 -
Java —— 想直接使用依赖中的controller应该如何注入?(ImportBeanDefinitionRegistrar )
问题当前有一个项目A, 以maven依赖的形式提供给项目B。在A中,有一个controller,里面有接口Inter,Inter已经配置好了接口访问路径。想要在项目B中直接调用这个接口,应该如何处理呢?解决想要使用A中controller中的某个接口,必须要将这个controller进行注入。因为在项目B中是不会将其扫描自动注入的。可以在项目A中以注解的形式,手动注入。代码手动注册controller代码import org.springframework.beans.原创 2020-12-24 15:51:27 · 3373 阅读 · 2 评论 -
Spring —— 配置文件的覆盖问题
问题当前有一个项目A, 以maven依赖的形式提供给项目B。A中有一些默认配置,项目B中可以使用application.yml对这些默认配置进行更改。解决项目B中application.yml中的配置会完全覆盖掉依赖中的默认配置,并不是扩展!!!...原创 2020-12-24 15:33:03 · 1206 阅读 · 0 评论 -
Spring —— 启动项目时想同时启动某个功能怎么办?(ApplicationListener)
问题在项目启动时,想同时启动某个功能怎么办?解决原创 2020-12-16 14:53:07 · 94 阅读 · 0 评论 -
Java —— 将一个实体复制给另一个实体,两个实体中有相同字段
问题目前有两个实体,部分字段相同,部分字段不同,想将一个实体复制给另一个实体,但不想写冗长的复制代码,应该如何处理呢?解决import org.apache.commons.beanutils.BeanUtils;//a复制给bBeanUtils.copyProperties(a, b);...原创 2020-12-04 17:08:12 · 4165 阅读 · 2 评论 -
Java、Mybatis事务——commit、rollback、编程式事务
业务场景执行某个SQL组合,如果这个SQL组合中全部执行成功则执行,一旦有一个执行不成功,则全部不执行。Spring 官方文档代码样例import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.S原创 2020-12-01 16:55:33 · 3770 阅读 · 2 评论 -
Spring注解 —— @ConfigurationProperties
Spring注解 —— @ConfigurationProperties原创 2020-11-30 21:29:53 · 466 阅读 · 0 评论