spring是目前java開發比較熱門的框架,配置boot和cloud能夠快速打造出一個restful項目
創新互聯專注于沈河網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供沈河營銷型網站建設,沈河網站制作、沈河網頁設計、沈河網站官網定制、微信小程序開發服務,打造沈河網絡公司原創品牌,更為您提供沈河網站排名全網營銷落地服務。spriing項目中主要用到的組件有
1:@Controller:控制器,用來綁定url和對應的處理方法,@RestController
2:@Service:一個組件,主要用來做處理業務邏輯
3:@Repository:主要是用作數據處理層
4:@Component:一般的組件
項目實戰:一個基礎的項目代碼
1:添加spring-cloud依賴:
<properties>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2:引入web包和響應式包,響應式是非阻塞IO的一種實現,在servlet請求的時候會把業務處理過程掛起,然后處理完成獲得結果了才重新激活servlet線程返回結果。這樣的好處是提高了線程處理能力,提高了并發處理。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
3:聲明一個Rest控制器,聲明后返回的數據默認是json格式
@RestController
@RequestMapping("/myurl") //綁定一個url前綴
public class MyController[
@GetMapping("/api-a")
public Mono<Object> testA() {
return Mono.just("hello");
}
}
當請求/myurl/api-a時,返回json數據是hello
路徑匹配規則:可以使用正則已經ant風格的匹配模式,多個路徑都符合時以最長匹配路徑為最優選擇。
4:聲明一些接口然后添加實現類,并注解@Service或者@Repository
5:啟動類:
@SpringApplication
public class AppStarter {
public static void main(String[] args) }
SpringApplication.run(AppStarter.class, args);
}
略
1:引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2: 使用組件注解的方式偵聽消息隊列:
@Component
public class OrderMessageHandler {
@RabbitListener(queues = {"OrderToCreate"})
public void handleMessage(MessageBodyDTO payload, @Header(AmqpHeaders.CHANNEL) Channel channel,
@Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag) throws IOException {
channel.basicAck(deliveryTag, false);
}
}
3:需要手動確認消息的,要配置:
spring.rabbitmq.listener.simple.acknowledge-mode=manual
然后在接收消息的地方進行手動確認channel.basicAck(deliveryTag, false);如果出錯不確認則會把消息卡住,unack消息會出現,然后接收不到之后的消息。
4:發送消息:在需要操作消息的地方注入
@Autowired
private RabbitTemplate amqpTemplate;
然后調用amqpTemplate.convertAndSend(body.getExchange(), body.getRoutingKey(), body);即可
feign是一個封裝好的http客戶端調用,能夠快速地調用rest api的內容
1:引入依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
2:在配置類上添加:@EnableFeignClients
3:聲明一個接口,接口上注解@FeignClient()
@FeignClient(name="myfeign",url="http://localhost/api-a"),
還可以配置decode和encode對請求的參數和響應的結果進行編碼。默認使用的是string,當需要請求對象或者返回對象時則需要重新編碼構造。
4:在方法上注解@RequestMapping("/myrul")來確定請求的實際路徑和方法
略
1:聲明一個切面組件
@Component
@Aspect
public class MyAspect {
}
2:在切面里聲明切點
@Pointcut("execution(* com.seasfood.producer..*.*(..))")
void myMethod() {
}
3:聲明通知,即切入之后要在哪個點位進行處理,主要用的before,after,around等
@Before("myMethod()")
void doCheck(JoinPoint joinPoint) {
//做些什么
}
@Around
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁標題:springmvc實戰-創新互聯
本文路徑:http://vcdvsql.cn/article38/dsdipp.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、商城網站、網站制作、網站排名、搜索引擎優化、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯