猿创征文|Java开发工具,从环境到开发,一篇管够!


一、文章背景

优秀的开发工具已经项目管理工具可以很方便的开发流程有序、减轻开发过程中遇到的多人协同开发产生的冲突等问题。也可以让刚入职的小伙伴快速搭建Java环境,不用一篇一篇文章的找教程。

二、环境/开发工具

(1)安装Docker

1.进入docker官网下载docker
在这里插入图片描述
找到对应的系统下载版本并点击下载

2.下载完毕之后,双击安装包进⾏安装即可
在这里插入图片描述

(2)配置 Docker 阿里镜像加速器

阿里镜像加速器
Docker Toolbox
1.打开docker
2.Settings
3.Docker Engine
4.在 json 文本中添加以下列(要符合json规范)

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://p9yals3y.mirror.aliyuncs.com"
  ]
}

(3)使用docker运行Mysql 8

mkdir -p /data/docker/mysql/{
    
    data,logs,conf}
# 复制配置文件到 conf 下,并修改所有者或者权限
docker run --name=mysql_dev_8 --restart=always  \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=mysql_dev  \
-e TZ=Asia/Shanghai \
-v mysql_dev_data_8:/var/lib/mysql \
-v mysql_dev_logs_8:/logs \
-v mysql_dev_conf_8:/etc/mysql/conf.d  \
-d -p3306:3306 mysql:8 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

注意:需要格式化成一句代码

(4)使用Docker运行Redis

docker run --name redis_dev --restart=always -d -p6379:6379 redis:latest redis-server --requirepass redis_dev

修改配置文件

  • 远程连接redis
    注释 bind 127.0.0.1
    修改 protected-mode yes 为 protected-mode no

  • 设置密码
    添加 requirepass yourpassword

  • 启动命令

 mkdir -p /data/docker/redis/{
    
    data,conf}
 #复制配置文件到 conf 下,并修改所有者或者权限

docker run -d --name redis --restart=always --privileged=true \
-p 6379:6379 \
-v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/docker/redis/data:/data \
redis:5.0.7 \
redis-server /etc/redis/redis.conf \
--appendonly yes

注意:下载Windows Powershell更方便

(5)数据库管理工具

1.Navicat可以连接多种数据库,如:mysql、sqlServer、oracle等
在这里插入图片描述
缺点:
该工具需要购买,试用期为14天

优点:
他可对开发环境和测试或者生产环境的数据库数据、结构进行同步
可以做数据模型设计并直接生成表结构

IDEA自带数据库工具
在这里插入图片描述
可视化并没有前者好,对于初学者没那么友好。

2.Another Redis Desktop ManagerRedisDesktopManager都是对redis数据库进行管理,前者ui界面更美观。

在这里插入图片描述在这里插入图片描述

(6)接口测试工具

1.Swagger(接口文档)
当下最流行的 API 框架,接口文档在线生成,避免同步的麻烦,可以支持在线对接口执行测试。
在这里插入图片描述

1.在pom.xml文件中引入jar包(具体的版本根据自己的项目而定,我用的是swagger2x)

 <!--  swagger-ui  -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>swagger-annotations</artifactId>
                    <groupId>io.swagger</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>swagger-models</artifactId>
                    <groupId>io.swagger</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.22</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.22</version>
        </dependency>

2.创建一个配置

@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "swagger2",value = {
    
    "enable"},havingValue = "true")
public class Swagger2 implements WebMvcConfigurer {
    
    

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
        registry.addResourceHandler("**/swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars*")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    @Bean
    public Docket platformApi() {
    
    
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).forCodeGeneration(true)
                .select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                //扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                //扫描所有包
//				.apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts());
    }


    private List<ApiKey> securitySchemes() {
    
    
        List<ApiKey> apiKeyList = new ArrayList<>();
        apiKeyList.add(new ApiKey("token", "token", "header"));
        return apiKeyList;
    }

    private List<SecurityContext> securityContexts() {
    
    
        List<SecurityContext> securityContexts = new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .forPaths(PathSelectors.any())
                        .build());
        return securityContexts;
    }

    private List<SecurityReference> defaultAuth() {
    
    
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        List<SecurityReference> securityReferences = new ArrayList<>();
        securityReferences.add(new SecurityReference("token", authorizationScopes));
        return securityReferences;
    }

    //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
    
    
        return new ApiInfoBuilder()
                //页面标题
                .title("JAVA-API")
                //描述
                .description("JAVA-API接口文档")
                //创建人
                .contact(new Contact("xxx", "https://www.baidu.com/", "[email protected]"))
                //版本号
                .version("1.0")
                .build();
    }

}

3.在对应的controller写对应的注解
在这里插入图片描述

2.Postman
在这里插入图片描述
postman是一个软件,测试工程师会有用的比较多

3.Apipost
在这里插入图片描述
ApiPost是一款支持模拟POST、GET、PUT等常见HTTP请求,支持团队协作,并可直接生成并导出接口文档的API 文档、调试、Mock、测试一体化协作性能非常强大的工具。简单说:
ApiPost = Postman + Swagger + Mock
ApiPost产生的初衷是为了提高研发团队各个角色的效率!产品的使用受众为由前端开发、后端开发和测试人员以及技术经理组成的整个研发技术团队。ApiPost通过协作功能将研发团队的每个角色整合打通。

(7)代码版本管理工具

有支持GitHub、Gitee等仓库管理
idea集成了git,有切Branch、commint、add、pull、push等丰富的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理.
在这里插入图片描述

(8)远程连接工具

FinalShell、MobaXterm、XShell、secureCRT、Putty
在这里插入图片描述在这里插入图片描述
1.FinalShell可以看到cpu、内存、交换机的使用情况
在这里插入图片描述
2.MobaXterm
功能十分强大,支持SSH,FTP,串口,VNC,X server等功能。 支持标签,切换也十分方便

3.XShell
Xshell是一个强大的安全终端模拟软件,界面设计简洁,使用方便,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

4.secureCRT
SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具,支持同时发送多个session。

5.Putty
PuTTY是一个Telnet/SSH/rlogin/纯TCP以及串行阜连线软件。较早的版本仅支援Windows平台。

猜你喜欢

转载自blog.csdn.net/wml_JavaKill/article/details/127610006