线上重要文件加解密,实现思路:
1,完成加解密核心类的编写并编译,然后对class文件加密。该文件放在项目根目录下,项目启动的时候能加载到该文件。然后自定义一个文件加载器,在加载该文件的时候解密class文件,保存到map中(类路径为键值,类字节数组为值)。自定义一个类加载器,从map中根据类名获取字节数组,然后调用类加载器defineClass方法生成类。这样就可以得到核心加密类。
2,通过jdk动态代理技术,生成指定加解密接口的代理类。调用代理类实际上是在调用加解密核心类。
3,通过代理类对重要文件加解密。
如果与spring集成的话,可以考虑使用FactoryBean。该接口的getObject方法,会产生实际bean。也就是说可以通过实现这个方法,自定义创建bean。事实上spring框架定义了大量的实现类,满足多样化创建bean需求。