springmvc實戰(zhàn)-創(chuàng)新互聯(lián)

spring是目前java開發(fā)比較熱門的框架,配置boot和cloud能夠快速打造出一個restful項目

創(chuàng)新互聯(lián)專注于沈河網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供沈河營銷型網(wǎng)站建設(shè),沈河網(wǎng)站制作、沈河網(wǎng)頁設(shè)計、沈河網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造沈河網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供沈河網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

spriing項目中主要用到的組件有

1:@Controller:控制器,用來綁定url和對應(yīng)的處理方法,@RestController

2:@Service:一個組件,主要用來做處理業(yè)務(wù)邏輯

3:@Repository:主要是用作數(shù)據(jù)處理層

4:@Component:一般的組件

項目實戰(zhàn):一個基礎(chǔ)的項目代碼

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包和響應(yīng)式包,響應(yīng)式是非阻塞IO的一種實現(xiàn),在servlet請求的時候會把業(yè)務(wù)處理過程掛起,然后處理完成獲得結(jié)果了才重新激活servlet線程返回結(jié)果。這樣的好處是提高了線程處理能力,提高了并發(fā)處理。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>

3:聲明一個Rest控制器,聲明后返回的數(shù)據(jù)默認是json格式

@RestController
@RequestMapping("/myurl")  //綁定一個url前綴
public class MyController[

    @GetMapping("/api-a")
    public Mono<Object> testA() {
         return Mono.just("hello");
    }
}

當(dāng)請求/myurl/api-a時,返回json數(shù)據(jù)是hello
路徑匹配規(guī)則:可以使用正則已經(jīng)ant風(fēng)格的匹配模式,多個路徑都符合時以最長匹配路徑為最優(yōu)選擇。

4:聲明一些接口然后添加實現(xiàn)類,并注解@Service或者@Repository

5:啟動類:

@SpringApplication
public class AppStarter {
    public static void main(String[] args) }
            SpringApplication.run(AppStarter.class, args);
    }

配合mybatis操作數(shù)據(jù)庫

使用amqp操作rabbitmq消息服務(wù)

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消息會出現(xiàn),然后接收不到之后的消息。

4:發(fā)送消息:在需要操作消息的地方注入

@Autowired
private RabbitTemplate amqpTemplate;
    然后調(diào)用amqpTemplate.convertAndSend(body.getExchange(), body.getRoutingKey(), body);即可

操作feign

feign是一個封裝好的http客戶端調(diào)用,能夠快速地調(diào)用rest api的內(nèi)容
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對請求的參數(shù)和響應(yīng)的結(jié)果進行編碼。默認使用的是string,當(dāng)需要請求對象或者返回對象時則需要重新編碼構(gòu)造。

4:在方法上注解@RequestMapping("/myrul")來確定請求的實際路徑和方法

操作Cache

AOP

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:springmvc實戰(zhàn)-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article38/dsdipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、商城網(wǎng)站、網(wǎng)站制作網(wǎng)站排名、搜索引擎優(yōu)化、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)