![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java框架
文章平均质量分 75
java框架
存在,及合理
记录点点滴滴,汇成山河大海
展开
-
java框架-目录
springbootspringBootMaven父工程pom文件_maven父工程打包pom-CSDN博客 SpringBoot起步依赖-CSDN博客 Spring-boot-配置文件-CSDN博客 SpringBoot读取配置@ConfigurationProperties @ImportResource_spring获取configurationproperties的配置-CSDN博客 SpringBoot注解-注入对象_springboot注入数据源对象-CSDN博客 springBo原创 2024-06-09 15:41:43 · 389 阅读 · 0 评论 -
SpringBoot@Conditional
容器中只有一个指定的Bean,或者这个Bean是首选Bean。按照一定的条件进行判断,满足条件给容器中注册bean。作用(判断是否满足当前指定条件)过启用 debug=true属性。系统的java版本是否符合要求。系统中指定的属性是否有指定的值。类路径下是否存在指定资源文件。容器中不存在指定Bean;容器中存在指定Bean;满足SpEL表达式指定。知道哪些自动配置类生效。原创 2023-07-09 23:16:05 · 130 阅读 · 0 评论 -
SpringBoot起步依赖
所以我们的SpringBoot工程继承spring-boot-starter-parent后已经具备版本锁定等配置了。所以起步依赖的作用就是进行依赖的传递。部分坐标的版本、依赖管理、插件管理已经定义好,原创 2023-07-09 20:58:14 · 67 阅读 · 0 评论 -
Spring-boot-配置文件
进行Spring Boot配置文件部署时,发出警告Spring Boot Configuration Annotation Processor not configured,但是不影响运行。配置注解执行器配置完成后,当执行类中已经定义了对象和该对象的字段后,在配置文件中对该类赋值时,便会非常方便的弹出提示信息。原创 2023-07-09 11:29:53 · 52 阅读 · 0 评论 -
SpringBoot-自定义Start
【代码】SpringBoot-自定义Start。原创 2023-07-10 00:40:12 · 51 阅读 · 0 评论 -
springBoot容器中注册组件
同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,仅适用于WebApplicationContext环境。@Component注解并没有通过 cglib 来代理@Bean 方法的调用,因此像下面这样配置时,就是两个不同的country。HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境。用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。默认情况下它调用的是类中的无参构造函数。原创 2024-06-05 20:57:09 · 875 阅读 · 0 评论 -
SpringBoot注解-注入对象
Autowired默认优先按照类型去容器中找对应的组件如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找。原创 2023-07-09 20:52:32 · 626 阅读 · 0 评论 -
springBoot注解@Configuration,Profile等
*** @param metadataReader 读取到的当前正在扫描的类的信息* @param metadataReaderFactory 可以获取到其他任何类信息的*/@Override//获取当前类注解的信息//获取当前正在扫描的类的类信息//获取当前类资源(类的路径)原创 2024-06-05 22:15:29 · 862 阅读 · 0 评论 -
SpringBoot-日期格式化
在需要进行日期格式转换的Date属性上添加注解@DateTimeFormat(pattern = "需要转换的格式")springboot应用中,@RestController注解的json默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00 类型的显示。原创 2024-06-05 21:09:41 · 256 阅读 · 0 评论 -
SpringBoot读取配置@ConfigurationProperties @ImportResource
【代码】SpringBoot读取配置@ConfigurationProperties。原创 2023-07-09 17:59:21 · 85 阅读 · 0 评论 -
springBootMaven父工程pom文件
【代码】springBootMaven父工程pom文件。原创 2023-07-08 18:45:04 · 243 阅读 · 0 评论 -
SpringBoot-自动配置
1)、SpringBoot启动会加载大量的自动配置类2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;xxxxAutoConfigurartion:自动配置类;xxxxProperties:封装配置文件中相关属性;原创 2023-07-09 20:24:44 · 43 阅读 · 0 评论 -
spring-validation
String message() default " 密码不正确";Class<?Class<?@Override@Override// 长度规则:8 - 30 位// 至少有一个大写字母// 至少有一个小写字母// 至少有一个数字// 至少有一个特殊字符// 不允许连续 3 个字母,按字母表顺序// 不允许 3 个连续数字// 不允许 QWERTY 键盘上的三个连续相邻的按键所代表的字符// 不允许包含空格。原创 2024-06-06 00:04:37 · 912 阅读 · 0 评论 -
spring事务注解 @Transactional
REQUIRED默认值 如果当前事务不存在,则创建新的,如果存在则加入支持当前事务,如果不存在则以非事务运行支持当前事务,如果不存在则抛出异常如果当前有事务,则挂起该事务,并且自己创建一个新的事务给自己使用 如果当前没有事务,则同REQUIRED如果当前有事务,则把事务挂起,自己不适用事务去运行数据库操如果当前有事务存在,则抛出异常spring要求被代理方法必须是public的。原创 2023-06-24 15:30:57 · 153 阅读 · 0 评论 -
SpringAOP-特殊场景- this 调用的当前类方法无法被拦截
this 对应的就是一个普通的 ElectricService 对象。这是一个被 Spring 增强过的 Bean。原创 2023-07-08 23:08:51 · 131 阅读 · 0 评论 -
SpringAOP-切点指示器
within()所指定的连接点最小范围只能是类,而execution()所指定的连接点可以大到包,小到方法入参。包 有几级包,就需要写几个*. * *.*.*.*.AccountServiceImpl.saveAccount())指定的注解只能放在需要被增强的方法所属的类中,若该类实现了某接口,将注解放在该接口上是不生效的。指定某个方法时,可能指定的这个方法是接口里的,这个接口又被很多个类实现,此时就可以使用。限定连接点属于一个执行对象(被代理对象)所属的拥有给定注解的类。原创 2023-07-13 00:03:16 · 64 阅读 · 0 评论 -
Spring-Aop
AOP(:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP(面向对象编程)的延续,可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码,使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。原创 2023-07-08 14:22:45 · 61 阅读 · 0 评论 -
Mvc原理流程
Interceptors :: Spring Frameworkhttps://docs.spring.io/spring-framework/reference/web/webmvc/mvc-config/interceptors.html原创 2023-07-22 21:45:11 · 67 阅读 · 0 评论 -
SpringMvc-request
http://localhost:8080/param/testParam?username=ww&password=sss3. PathVariable映射 URL 绑定的占位符@PathVariable(required = false) 为false 则为null4. RequestBody5. RequestHeader6. session7. CookieValue8. ModelAttribute出现在方法上,表示当前方法会原创 2024-05-25 18:36:47 · 358 阅读 · 0 评论 -
java原生的接口调用- java11-URL与URI
统一资源定位符(Uniform Resource Locator,URL)统一资源标识符(Uniform Resource Identifier,URI)URI类并不包含任何用于访问资源的方法,它的唯一作用就是解析。但是,URL 类可以打开一个连接到资源的流。因此,URL类只能作用于那些 Java类库知道该如何处理的模式,例如 http∶、https∶、ftp∶、本地文件系统(file∶)和JAR文件(jar∶)。URI类的作用之一是解析标识符并将它分解成各种不同的组成部分。原创 2024-06-03 00:00:34 · 229 阅读 · 0 评论 -
web-servlet-response
获得字节流,通过该字节流的write(byte[] bytes)可以向response缓冲区中写入字节,在由Tomcat服务器将字节内容组成Http响应返回给浏览器。s)方法可以将字符串设置到response缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端。响应正文的类型(MIME类型)取值:text/html;指的是服务器名称,默认值:Apache-Coyote/1.1。指定响应的路径,需要与状态码302配合使用,完成跳转。获得字符流,通过字符流的。原创 2024-06-01 14:41:40 · 680 阅读 · 0 评论 -
web-servlet-listerer
监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用 监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化, 统计网站的访问量等等事件源:被监听的对象 ----- 三个域对象 request session servletContext监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器注册监听器:将监听器与事件源进行绑定。原创 2024-06-01 15:59:52 · 383 阅读 · 0 评论 -
SpringMvc CORS-跨域处理
同源"指的是"三个相同":同源策略的目的:是为了保证用户信息的安全,防止恶意的网站窃取数据。限制:如果非同源,共有三种行为受到限制。工作原理是添加新的HTTP headers来让服务器描述哪些源的请求可以访问该资源,对于可能对服务器造成不好影响的请求,规范规定浏览器需要先发送“预检”请求(也就是OPTION请求),在预检请求通过后再发送实际的请求,服务器还可以通知客户端是否应该随请求发送“凭据”(例如 Cookie 和 HTTP 身份验证)。Request HeaderResonse Header支持的源,原创 2024-05-26 16:17:38 · 641 阅读 · 0 评论 -
web-sevlet-request
参数]例如: text/html ,html文件 text/css,css文件 text/javascript,js文件 image/*,所有图片文件。如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码。浏览器通知服务器,浏览器支持的数据压缩格式。request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据。浏览器通知服务器,浏览器支持的语言。空行,就是用于分割POST请求的请求头,和请求体的。原创 2024-06-01 14:36:32 · 547 阅读 · 0 评论 -
Spring-mvc全局异常处理
【代码】Spring-mvc全局异常处理。原创 2024-05-27 23:01:14 · 474 阅读 · 0 评论 -
web-servlet-filter
AFilter 和 BFilter,AFilter就先执行了。注解配置:设置dispatcherTypes属性。按照类名的字符串比较规则比较,值小的先执行。谁定义在上边,谁先执行。原创 2024-06-01 15:55:22 · 222 阅读 · 0 评论 -
web-客户端调用RestTemplate
Spring提供的⽤于访问Rest服务的客户端,底层通过使⽤java.net 包下的实现创建HTTP 请求 通过使⽤ClientHttpRequestFactory指定不同的HTTP请求⽅式,主要提供了两种实现⽅式。原创 2024-06-02 23:43:35 · 184 阅读 · 0 评论 -
SpringMvc拦截器与过滤器
4. 由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。4. 使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;3. 缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理;2. 在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用;3. 缺点是一个过滤器实例只能在容器初始化时调用一次;原创 2024-05-26 16:24:43 · 476 阅读 · 0 评论 -
SpringMvc-response
Map 及 Model: 入参为 org.springframework.ui.Model org.springframework.ui.ModelMap java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。若希望在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个 @SessionAttributes, Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。Spring MVC 在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器。原创 2024-05-26 16:07:32 · 656 阅读 · 0 评论 -
SpringMvc-请求入参 绑定转化过程
拥有一个 FormattingConversionServiceFactroyBean 工厂类,后者用Spring 上下文中构造前者,FormattingConversionServiceFactroyBean 内部已经注册了。装配了 FormattingConversionServiceFactroyBean 后,就可以在 Spring MVC 入参绑定及模型数据输出时使用注解驱动了。NumberFormatAnnotationFormatterFactroy:支持对数字类型的属性使用。原创 2024-05-26 16:00:45 · 346 阅读 · 0 评论 -
web-servlet
Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码服务器执行,通过java的API动态的向客户端输出内容 Server Applet Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。原创 2024-06-01 14:09:04 · 825 阅读 · 0 评论 -
SpringMvc-HttpMessageConverte
Spring 首先根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter, 进而根据参数类型或泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的 HttpMessageConverter 将报错。使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息。通过JAXB2读写XML消息,将请求消息转换到标注XmlRootElement和XxmlType直接的类中。原创 2024-05-27 22:59:10 · 525 阅读 · 0 评论 -
web-客户端调用-配置连接超时和读取超时参数
通常情况下,我们的服务会有多个节点,如果别的客户端通过客户端负载均衡技术来连接服务端,那么客户端和服务端会直接建立连接,此时出现连接超时大概率是服务端的问题;而如果服务端通过类似 Nginx 的反向代理来负载均衡,客户端连接的其实是 Nginx,而不是服务端,此时出现连接超时应该排查 Nginx。但,因为 TCP 是先建立连接后传输数据,对于网络情况不是特别糟糕的服务调用,通常可以认为出现连接超时是网络问题或服务不在线,而出现读取超时是服务处理超时。确切地说,读取超时指的是,几乎所有的网络框架都会提供。原创 2024-05-29 21:13:32 · 287 阅读 · 0 评论 -
web-Cookie
浏览器在发送请求之前,首先会根据请求url中的域名在cooki列表中找所有与当前域名一样的cookie,然后再根据指定的路径进行匹配,如果当前请求在域匹配的基础上还与路径匹配那么就会将所有匹配的cookie发送给服务器,这里要注意的是最大匹配和最小匹配问题,有些cookie服务器在发送之前会有意扩大当前页面cookie的匹配范围,此时这些被扩大范围的cookie也会一起发送给服务器。cookie一般都是由于用户访问页面而被创建的,可是并不是只有在创建cookie的页面才可以访问这个cookie。原创 2024-06-01 16:01:59 · 484 阅读 · 0 评论 -
web-session
基于服务器内存的缓存(非持久化),可保存请求会话每个session通过sessionid来区分不同请求键值对形式存在的设置过期时间。原创 2024-06-01 16:07:11 · 693 阅读 · 0 评论 -
java-框架-日志常见的问题
一般互联网公司都会使用 ELK 三件套来统一收集日志,有一次我们发现 Kibana 上展示的日志有部分重复,一直怀疑是 Logstash 配置错误,但最后发现还是 Logback 的配置错误引起的。掌握了把日志输出到文件中的方法后,我们接下来面临的问题是,如何避免日志记录成为应用的性能瓶颈。这可以帮助我们解决,磁盘(比如机械磁盘)IO 性能较差、日志量又很大的情况下,如何记录日志的问题。CONSOLE 这个 Appender 同时挂载到了两个Logger 上,一个是我们定义的,一个是由于我们定义的继承自,原创 2024-06-11 23:02:49 · 342 阅读 · 0 评论 -
java框架-log4j2
那也就是动态化服务应用名,如上面Property配置有个SERVER_NAME常量,我这里取自System变量,以此作为服务名。下面的appender使用${SERVER_NAME} 相当于获取了动态服务名。例如,order(订单系统),goods(商品系统)在同一台服务器上部署,我们希望的日志路径和命名方式是。可以根据实际的项目需求来选择,也可以自定义属于自己的lookup。log4j2提供了多个Lookups来满足类似的功能,原创 2024-06-11 22:14:07 · 929 阅读 · 0 评论 -
java-框架logback
Logback Manual默认引入了 logback框架配置模板文件位置logback-spring.xmllogback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能如果使用logback.xml作为日志配置文件,还要使用profile功能,会有以下错误no applicable action for [springProfile]Chapter 3: Co原创 2024-06-11 18:46:27 · 728 阅读 · 0 评论 -
java-框架-lombok
如果觉得@Data太过残暴(因为@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性)不够精细,可以使用@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法.如果一个类仅仅只需要一个无参的构造函数,那么完全没有必要使用@NoArgsConstructor注解,因为Java会在编译时,为没有构造函数的类自动生成一个无参的构造函数。原创 2024-06-04 22:44:37 · 1078 阅读 · 0 评论 -
java-框架-单元测试
我们都知道,junit 单元测试的原理,但显然,junit 是无法实现的,因为它自己都无法知晓我们是否使用了 spring 框架,更不用说帮我们创建 spring 容器了。Junit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。第二:测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。答案是肯定的,没问题,可以使用。被注解的方法将在当前类中的每个。原创 2024-06-04 22:35:04 · 450 阅读 · 0 评论