【Spring Cloud】新闻头条微服务项目:环境搭建及框架准备_beanvalidatorpluginsconfiguration

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文


创建容器:



docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 nacos/nacos-server:1.2.0


这里对相关参数做简要说明:


* MODE=standalone 单机版
* --restart=always 开机启动
* -p 8848:8848 映射端口
* -d 创建一个守护式容器在后台运行


完成上述操作之后打开浏览器输入[http://你自己服务器ip:8848/nacos]( ),假如出现如下页面说明Nacos安装成功:


![](https://img-blog.csdnimg.cn/9bea556525114a0e9506ecd27eeda290.png)需要注意一点,假如你用的是云服务器,你需要确保你的服务器防火墙8848端口是对外开放的,这样你才能访问到云服务器中的容器,后续凡是要创建容器映射端口的均需要自己去开放相应端口。


### 2.导入初始工程


#### (1)项目依赖环境


* JDK1.8
* Intellij Idea
* maven
* Git


#### (2)初始工程结构


![](https://img-blog.csdnimg.cn/95304036f36042df82bc1c2911b519bb.png)


* tbug-headlines:父工程,同一管理项目依赖,继承Springboot
* tbug-headlines-common:一些通用配置
* tbug-headlines-feign-api:feign对外的接口
* tbug-headlines-model:pojo、dto
* tbug-headlines-utils:通用的工具
* tbug-headlines-gateway:管理网关工程
* tbug-headlines-service:管理微服务
* tbug-headlines-test:一些测试案例


## 三:接口工具及前端集成


### 1.接口工具


        接口测试工具我选用的是Apifox,当然你也可以选择Postman,萝卜青菜各有所爱,都是傻瓜式安装,这里就不赘述了。当然我感觉一个Knife4j就足够了,什么是Knife4j呢?knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! 该UI增强包主要包括两大核心功能:**文档说明**和**在线调试。**


#### **快速集成**


 1.在tbug-headlines-common模块中的`pom.xml`文件中引入`knife4j`的依赖,如下:




com.github.xiaoymin knife4j-spring-boot-starter ```

2.创建Swagger配置文件

package com.my.common.swagger;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Configuration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //分组名称
                .groupName("1.0")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.my"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("土豆头条API文档")
                .description("土豆头条API文档")
                .version("1.0")
                .build();
    }
}

3.添加配置

在Spring.factories中新增配置

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.my.common.swagger.Swagger2Configuration,\

4.访问

浏览器输入http://host:port/doc.html

2.前端集成

(1)前端项目部署思路

通过nginx来进行配置,功能如下

  • 通过nginx的反向代理功能访问后台的网关资源,主要流程是当用户的访问路径匹配到app的路径时候nginx就会将该访问进行代理转发,这时候你实际访问的是http://localhost:51601。
  • 通过nginx的静态服务器功能访问前端静态页面,见下面配置,tbug-headlines-app.conf文件中监听的是8801端口,当我们访问8801端口,nginx就会读取root里面的静态资源供我们访问,首先加载的是index.html。
(2)配置nginx

①先安装好nginx,然后将app-web文件放在一个文件夹下待用。

②配置nginx.conf文件

在nginx安装的conf目录下新建一个文件夹headlines.conf,在当前文件夹中新建tug-headlines-app.conf文件,配置文件内容如下:

upstream  tbug-app-gateway{
    server localhost:51601;
}

server {
	listen 8801;
	location / {
		root D:/headlinesPro/headlinesApp-web/;
		index index.html;
	}
	
	location ~/app/(.*) {
		proxy_pass http://tbug-app-gateway/$1;
		proxy_set_header HOST $host;  # 不改变源请求头的值
		proxy_pass_request_body on;  #开启获取请求体
		proxy_pass_request_headers on;  #开启获取请求头
		proxy_set_header X-Real-IP $remote_addr;   # 记录真实发出请求的客户端IP
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  #记录代理信息
	}
}

**注意:**路径自己设置成自己的。

③修改nginx.conf

把里面注释的内容和静态资源配置相关删除,改成如下配置

#user  nobody;
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;

    keepalive_timeout  65;
    include headlines.conf/*.conf;


    server {
        listen       8888;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/26adf485a8ea498cd7d78249f422af92.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

        }



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-lVDfglIN-1713351435258)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值