sofa框架简单搭建
sofa框架是基于springboot封装的又一层框架,采用rpc远程调用协议,按照博主的理解,就是封装了socket套接字。(当然,博主也是刚接触java这行的小白,博主理解的这句话可以忽略!,这也是博主第一次写博客,主要是为了整理一下刚刚学过的东西,搭建过程也是参考其他博客。)
第一步:
新建两个springboot项目工程,new->spring starter project->输入项目名->next->next->finish
第一个项目名为sofademo,为服务端
第二个项目名为sofademoclient 客户端
第二步:
添加sofademo 服务端的pom.xml依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.alipay.sofa</groupId>
<artifactId>sofaboot-dependencies</artifactId>
<version>2.3.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>sofademo</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>sofademo</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>rpc-sofa-boot-starter</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加sofademoclient 客户端的pom.xml依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>sofademoclient</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>sofademoclient</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>com.alipay.sofa</groupId>
<artifactId>sofaboot-dependencies</artifactId>
<version>2.3.2</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>rpc-sofa-boot-starter</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
第三步:
添加配置文件,在sofademo项目里,新建rpc-sofa.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sofa="http://sofastack.io/schema/sofaboot"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://sofastack.io/schema/sofaboot http://sofastack.io/schema/sofaboot.xsd"
default-autowire="byName">
<bean id="helloSynServiceImpl" class="com.example.demogrowth.HelloSynServiceImpl" />
<sofa:service ref="helloSynServiceImpl" interface="com.example.demogrowth.HelloSynService">
<sofa:binding.bolt/>
</sofa:service>
<!-- <sofa:reference id="helloSynServiceReference" interface="com.example.demogrowth.HelloSynService">
<sofa:binding.bolt/>
</sofa:reference> -->
</beans>
在sofademoclient项目里新建rpc-sofa.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sofa="http://sofastack.io/schema/sofaboot"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://sofastack.io/schema/sofaboot http://sofastack.io/schema/sofaboot.xsd"
default-autowire="byName">
<sofa:reference id="helloSynServiceReference" interface="com.example.demogrowth.HelloSynService">
<sofa:binding.bolt/>
</sofa:reference>
</beans>
第四步:
在sofademo项目里(服务端),新建HelloSynService.java文件,为interface接口类,新建HelloSynServiceImpl.java文件,为实现类,修改SofademoApplication.java文件
在sofademoclient项目里(客户端),新建HelloSynService.java文件,为接口类,修改SofademoclientApplication.java文件
第五步:
先启动sofademo项目(服务端)
再启动sofademoclient项目(客户端)
成功!