springmvc实战-创新互联

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);
    }

配合mybatis操作数据库

使用amqp操作rabbitmq消息服务

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

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")来确定请求的实际路径和方法

操作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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页标题:springmvc实战-创新互联
本文路径:https://www.cdcxhl.com/article38/dsdipp.html

成都网站建设公司_创新互联,为您提供品牌网站制作商城网站网站制作网站排名搜索引擎优化全网营销推广

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设