spring
文章平均质量分 78
whqObito
这个作者很懒,什么都没留下…
展开
-
Spring 用到的设计模式
Spring用到如下这些设计模式:工厂模式(简单工厂模式,工厂方法模式),单例模式,适配器模式,代理模式,观察者模式,模板模式简单工厂模式:工厂就是处理创建对象的细节,而简单工厂模式就是将创建对象的细节交到了其他类,简单工厂将全部的事情,都在那个类中处理完了,我们只需要从该类中取出对象即可。符合该模式的就是 Spring中的 BeanFactory接口,我们用的ApplicationContext就是它的实现类。想想我们是如何使用这个类的:ApplicationContext context =原创 2021-12-12 16:05:03 · 310 阅读 · 0 评论 -
Spring之代理学习
文章目录代理模式动态代理:代理模式要学习动态代理,那么必须要知道代理模式。代理,现在的房地产中介就是一种代理,如果没有中介,那么房主和买主之间就是付房款,那么多了代理(中介),中介就多做了一些功能,比如收中介费。代理最终要将请求(买房需要)转发给真正的被访问者(房主),它可以在转发请求之前或之后加入特定的逻辑(收中介费)实例:public interface owner { public int sell_house();}public class ownerimpl imp原创 2021-07-14 21:09:50 · 251 阅读 · 1 评论 -
zookeeper学习 (一)
文章目录Zookeeper概念:zookeeper特点:存储的数据结构zookeeper的应用场景:统一命名服务:统一配置管理:统一集群管理:服务器动态上下线:软负载均衡:下载安装:Zookeeper概念:Zookeeper本身是一个开源的分布式的为别的分布式框架提供协调服务它是基于观察者模式的,它负责存储和管理数据,接收观察者的注册,一旦数据的状态发生变化,zookeeper就将负责通知在zookeeper上注册的那些观察者做出相应的反应Zookeeper=文件系统+通知机制文件系统: 就是用原创 2021-07-10 00:02:15 · 125 阅读 · 3 评论 -
理解Java注解并理解 Spring的@Autowired
首先我们可以自己写一个注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface AnnoSample { String value();}注解使用 @interface来标识。这个注解定义了一个属性value,只能作用于方法上,生命周期是运行时。@Target用于指定可以放置注解的位置,这里指定的METHOD说明该注解只能放置到方法上面,还可以指定TYPE(类、接口、枚举类),原创 2021-07-08 22:13:27 · 989 阅读 · 10 评论 -
Spring Security是如何在各个请求共用认证信息的?
Spring Security直接通过 Session来共享认证信息我们现在来从源码分析下:我们知道,认证的过滤器Filter 是 UsernamePasswordAuthenticationFilter ,然后找到它的父类 :AbstractAuthenticationProcessingFilter,有一个 protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse resp原创 2021-06-20 01:18:42 · 454 阅读 · 0 评论 -
对 Spring Security 认证授权 原理浅析
认证原理:过滤器中执行的是 doFilter() 方法,所以去找 这个方法,但是在UsernamePasswordAuthenticationFilter中没有找到,可能是继承了父类的doFilter() ,向上寻找,看到这里,判断的是是否需要认证,如果不需要,那么执行过滤器链的下一个这里的 authResult则是用于封装我们的认证之后用户信息,可以看下 子类中重写的 attemptAuthentication用于进行认证(查数据库的那个过程),如下:这里调用 token去进行认证,认证通原创 2021-06-20 00:25:42 · 233 阅读 · 0 评论 -
对 Spring Data Repositories的使用
spring data的中心接口是 Repository ,需要实体类和ID作为类型参数,这个CrudRepository 接口为我们正在管理的实体类提供复杂的CRUD功能PagingAndSortingRepository则是继承了 CrudRepository接口,还增加了额外的方法来简化对实体的分页访问分页接口的使用:PagingAndSortingRepository<User, Long> repository = // … get access to a beanPage&l原创 2021-06-06 16:01:16 · 101 阅读 · 0 评论 -
用动态代理Proxy实现类似于切面
代理类是Proxy。然后我们要实现类似于切面就是说在已确定实现类的情况下在某方法里面加入更多的东西(不修改原来的东西,仅拿到的对象有修改)。主角方法: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, Invoca原创 2020-08-31 19:39:26 · 130 阅读 · 0 评论 -
spring的两个接口BeanFactory和ApplicationContext
IOC容器的两个接口是BeanFactory和ApplicationContext.都可以加载xml配置文件:ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");BeanFactory ctx = new ClassPathXmlApplicationContext("applicationContext.xml");差别:BeanFactory是IOC容器最基本的接口,原创 2020-08-28 14:14:39 · 134 阅读 · 0 评论 -
spring框架的IOC原理浅析
我们知道在写spring代码的时候,我们先在xml文件里面配置好bean,然后在代码中可以使用。原理:首先是IOC容器解析xml文件,然后找出所有的bean和对应的全类名。然后通过反射构造对象 Class.forName(“全类名”); 构建出该对象,如果有<property>的话,就使用setter方法来创建进去(这可能也是spring的bean类必须是JavaBean的原因)。现在这个对象还是在IOC容器内的。之后我们在测试代码中使用 ApplicationContext来取原创 2020-08-28 11:36:07 · 109 阅读 · 0 评论 -
javaweb论怎么把数据库内的内容展现到JSP里面
首先我这里采用的并不是使用Controller传参数到Jsp文件,而是直接在JSP里面使用java代码取出需要的值:挂代码:<%@ page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%@page import="java.sql.*" %> <%--导入java.sql包-...原创 2020-04-10 20:11:27 · 1063 阅读 · 1 评论 -
对于IDEA找不到.java文件而只能找到.class文件
在我寻找WebMvcautoconfiguration的时候,我发现只能找到class文件但是当我找出来的时候可以看到这里出现的是.class文件,而不是我想要的Java文件,这个时候我就点击右上角那个Downloda Sources ,等待IDEA下载完成之后这样Java文件就成功出现了...原创 2020-03-30 18:46:11 · 2232 阅读 · 4 评论