`
15606915740
  • 浏览: 18480 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

spring动态加载class文件

阅读更多
类要继承classLoader才有defineClass方法 还有实现ApplicationContextAware接口
public String test() throws Exception{
String myPath = "file:/D:/test/class/MyMain.class";
System.out.println(myPath);
byte[] cLassBytes = null;
Path path = null;
try {
path = Paths.get(new URI(myPath));
cLassBytes = Files.readAllBytes(path);
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
Class clz = defineClass("MyMain", cLassBytes, 0, cLassBytes.length);
Method method = clz.getMethod("test");
Object obj = clz.newInstance();
// method.invoke(obj);
ConfigurableApplicationContext cc = (ConfigurableApplicationContext)context;
DefaultListableBeanFactory factory = (DefaultListableBeanFactory)cc.getBeanFactory();
BeanDefinitionBuilder buider = BeanDefinitionBuilder.genericBeanDefinition(clz);

Field[] field = clz.getDeclaredFields();
for(Field field1 : field){
buider.addPropertyReference(field1.getName(),field1.getName());
}

        factory.registerBeanDefinition("myMain",buider.getRawBeanDefinition());
Object obj1 =  context.getBean("myMain");
        method.invoke(obj1);
return "ok";
}
分享到:
评论

相关推荐

    Spring bean 动态注册,jar包热替换

    spring的bean动态加载则需要对相应的bean进行动态注册,以及jar与class文件动态加载。测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录...

    Spring-asm类加载修改/Tomcat Spring web项目源代码加密

    为了防止产品代码泄漏或...如果对class文件加密了,那类加载器如何能解析呢?本文讲解的就是SpringWeb项目加密后如何能在tomcat下面启动运行的。 1、war包加密; 2、tomcat类加载器修改; 3、Spring-asm类加载修改;

    Spring 自定义注解注入properties文件的值jar包

    Spring 自定义注解注入properties文件的值jar包,下面为使用方法 在xml配置文件中,这样加载properties文件 <bean id="propertyConfigurer" class=...

    spring MVC 配置文档

    加载 DispatcherServlet 时 Spring 会尝试读取配置文件 默认的配置文件位于 web.xml 相同的路径下 文件名与注册的 Servlet 名有关 Servlet注册名跟上 -servlet.xml 例如:上面的 Servlet 注册名为 ...

    CXF WebService整合Spring示例工程代码demo

    -- 设置Spring容器加载配置文件路径 --> <param-name>contextConfigLocation <param-value>classpath*:applicationContext-server.xml <listener-class>org.springframework.web.util....

    springboot实现maven打包加载不同环境的方式二

    当前案例中包含一整套的代码和word文档,非常适合新手... 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的内容是不一样的

    springweb3.0MVC注解(附实例)

    -- Spring MVC 的Servlet,它将加载WEB-INF/annomvc-servlet.xml 的 配置文件, 以启动Spring MVC模块--> <servlet-name>annomvc <servlet-class> org.springframework.web.servlet.DispatcherServlet ...

    Spring.net框架

    我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建对象并设置属性的。有了这个Factory,MainApp中的内容就很简单了: using System; namespace IocInCSharp { public class MainApp { public ...

    ClassFinal字节码加密工具-其他

    ClassFinal是一款Java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework,可避免源码泄漏或字节码被反编译。项目模块说明:classfinal-core:ClassFinalde的核心模块...

    Spring.html

    PropertySource:加载配置文件 Import:导入其他配置类 AOP 概念:面向切面编程,在不改变源码的情况下对方法进行增强,抽取横切关注点(日志处理,事务管理,安全检查,性能测试等等),使用AOP进行增强,使程序员只需要...

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring.3.x企业应用开发实战(完整版).part2

    7.9 JVM Class文件字节码转换基础知识 7.9.1 java.lang.instrument包的工作原理 7.9.2 如何向JVM中注册转换器 7.9.3 使用JVM启动参数注册转换器的问题 7.10 使用LTW织入切面 7.10.1 Spring的LoadTimeWeaver 7.10.2 ...

    spring源代码

    //将只加载文件系统类路径匹配的Resource resources = resolver.getResources("classpath*:LICENS*"); Assert.assertTrue(resources.length == 1); } @Test public void testFilekPrefix() throws ...

    基于SSM框架的健康项目管理源码,整合Dubbo分布式与SpringSecurity权限认证

    - 其他资源:包括Class文件等。 特色技术整合: - 项目采用了Dubbo分布式架构,提升了系统的伸缩性和稳定性。 - 集成了七牛云服务,用于高效图片存储。 - 利用阿里云服务实现短信发送功能。 - 支持Freemark页面静态...

    SpringBoot在yml配置文件中配置druid的操作

    spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class-name: com.mysql.jdbc.Driver ###################以下为druid增加的配置######...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    Java加载资源文件的两种方法

    处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道。Java将配置文件当作一种资源(resource)来处理,并且提供了两个类来读取这些资源,一个是Class类,另...

    Spring AOP配置源码

    @Component("userService")等价于在spring配置文件中定义一个<bean id="userService"/> @Resource(name="userDAO")将userDA注入进来 写一个拦截器的类 package com.spring.aop; import org.springframework....

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    同加载struts方式类似,选择Myeclipse后在弹出的二级菜单中选择Add spring in action in action Capabilities…后提示如下图所示: 选择所需要的spring in action in action包,然后默认下一步,直到完成。 到此...

Global site tag (gtag.js) - Google Analytics