<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.38</version> </dependency>
package cn.netkiller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; //import org.springframework.data.jpa.repository.config.EnableJpaRepositories; //import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableAutoConfiguration @ComponentScan // @EnableMongoRepositories // @EnableJpaRepositories @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
package cn.netkiller.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.remoting.caucho.HessianProxyFactoryBean; //import org.springframework.remoting.caucho.HessianProxyFactoryBean; import org.springframework.remoting.caucho.HessianServiceExporter; import cn.netkiller.service.HelloWorldService; @Configuration public class HessionConfig { @Autowired private HelloWorldService helloWorldService; @Bean(name = "/HelloWorldService") public HessianServiceExporter hessianServiceExporter() { HessianServiceExporter exporter = new HessianServiceExporter(); exporter.setService(helloWorldService); exporter.setServiceInterface(HelloWorldService.class); return exporter; } @Bean public HessianProxyFactoryBean helloClient() { HessianProxyFactoryBean factory = new HessianProxyFactoryBean(); factory.setServiceUrl("http://localhost:7000/HelloWorldService"); factory.setServiceInterface(HelloWorldService.class); return factory; } }
package cn.netkiller.service; public interface HelloWorldService { String sayHello(String name); }
package cn.netkiller.service.impl; import org.springframework.stereotype.Component; import cn.netkiller.service.HelloWorldService; @Component public class HelloWorldServiceImpl implements HelloWorldService { @Override public String sayHello(String name) { return "Hello World! " + name; } }
package cn.netkiller.rest.hession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import cn.netkiller.service.HelloWorldService; @RestController @RequestMapping("/public/hession") public class TestRestController { @Autowired HelloWorldService helloWorldService; @RequestMapping("/hello") public String test() { return helloWorldService.sayHello("Spring boot with Hessian."); } }
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。