1、简述 模板方法是定义一个算法骨架,将特定步骤交给子类处理,这样子类就可以根据自己的需求,重新定义特定步骤。 2、建立一个游戏启动模板 public abstract class GameTemplate { public abstract void init(); public abstract void start(); public void play(){ init(); start(); } } 3、CF public class Cf extends GameTemplate { @Override public void init() { System.out.println("初始化cf环境"); } @Override public void start() { System.out.println("启动cf"); } } 4、LOL public class Lol extends GameTemplate { @Override public void init() { System.out.println("初始化lol环境"); } @Override...... 模板方法 设计模式
1、简述 适配器模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式分为类适配器模式和对象适配器模式,却别在于被适配的对象是通过继承还是组合来完成。 适配器实现了接口转换,在不修改客户端或者目标类的前提下,使得目标类与客户端的接口兼容。 例如现在有一个220V的充电器,用户希望新增一个功能让这个充电器可以适配22V的设备,但是同时也需要保留220V的充电功能,这个时候就需要使用适配器模式,来保留他原来的功能,同时新增功能。 2、类适配器 类适配器通过继承被适配的对象来实现新接口功能的适配,ChargerAdapter中,继承charger220V保留了原来的方法,同时实现了新功能。在下面的代码中,Charger220V就是要适配的对象。 public class Charger220V { public int charging(){ System.out.println("输出220V电压"); return 220; } } public interface Charger100V { public int charging(); } public clas...... 适配器模式 设计模式
1、查看开启的端口 firewall-cmd --list-port 2、开启一个端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 3、关闭一个端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent 4、重启防火墙 firewall-cmd --reload 5、开启、关闭防火墙 systemctl start firewalld systemctl stop firewalld centos开启防火墙端口 centos
1、定义类注解和方法注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface TypeAnnotation { String value() default "这是类注解"; } @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MethodAnnotation { String value() default "这是方法注解"; } 2、处理注解 此处通过反射拿到类对象,获取注解,来操作。 再生产中也可以结合切面编程来处理注解,或者扫描指定包下的所有类,遍历处理注解 public class AnnotationHandler { public static void main(String[] args){ //可以配置扫描路径加载所有class,也可以使用aspectj直接做前面处理 Class aClass ...... 自己定义一个注解 java
1、安装gcc yum install gcc-c++ -y 2、redis下载解压 wget http://download.redis.io/releases/redis-5.0.8.tar.gz tar xzf redis-5.0.8.tar.gz cd redis-5.0.8 3、编译 make 4、启动 进入src目录,运行redis-serve即可 centos安装redis linux
基本流程示意图 spring boot security默认的登录流程如下所示,弄懂登陆的流程,有助于我们后面扩展框架,解决遇到的问题 UsernamePasswordAuthenticationFilter过滤器过滤请求 调用ProviderManager认证 获取了authenticationManager处理登录,AuthenticationManager接口有多个实现类,默认调用了ProviderManager providerManager中管理了多个认证适配器,调用对应的适配器进行认证 进入DaoAuthenticationProvider进行认证 DaoAuthenticationProvider继承了AbstractUserDetailsAuthenticationProvider类,这个类又实现了AuthenticationProvider接口,这个接口中的supports方法就是上文用来匹配适配器的方法,继承这个接口,实现这个方法,就可以自定义适配器 调用InMemoryUserDetailsManager查询用户信息 DaoAuthenticationProvid.... spring security认证流程 java