Java8 --- Gradle7.4整合IDEA

目录

一、Gradle整合IDEA

1.1、Groovy安装

1.1.1、配置环境变量

​编辑

1.2、创建项目 ​编辑

1.3、Groovy基本语法

1.3.1、基本语法

1.3.2、引号

1.3.3、语句结构

1.3.4、数据类型

1.3.5、集合操作

1.4、使用Gradle创建普通Java工程 

1.5、使用Gradle创建Java ssm工程  

1.6、对测试功能的支持

1.6.1、使用junit4测试

1.6.2、使用Junit5测试


一、Gradle整合IDEA

1.1、Groovy安装

官网地址:The Apache Groovy programming language - Documentation

下载安装包并解压:

1.1.1、配置环境变量

 

 指令:groovy -v 查看安装是否成功

1.2、创建项目 

1.3、Groovy基本语法

1.3.1、基本语法

class Hello {
    /*
     1、groovy中使用def定义属性、方法、def支持动态类型声明。
     2、单行注释//
     3、结尾分号可以省略。
     4、会自动给属性生成getter,setter方法。
     5、方法声明时,参数类型、返回值类型,return关键字可以省略,默认最后一行为返回值
     6、在变量引用时,不引起歧义可以省略{}
     7、对象属性赋值方式:①、对象.属性名= ②、对象["属性名"] ③、对象.属性setter方法 ④、具名构造器方式
     8、读取属性值方式:①、对象.属性名 ②、对象["属性名"] ③、对象.属性getter方法
     */
    def id = 1
    def name
    def save(num){
        //"num:${num}"
        "num:$num"
    }
}

配置文件 

def hello = new Hello(name: "小亮")
//给属性赋值
hello.name = "小明"
hello["name"] = "小王"
hello.setName("小美")
//读取属性值
println(hello.getId());
println(hello.name)
println(hello["name"])
//调用方法
def save = hello.save(10)
print(save)

1.3.2、引号

//引号的使用
def age = 10

def str1 = '单引号,不支持变量引用,不支持换行操作${age}'
def str2 = "双引号,支持变量引用,不支持换行操作${age}"
def str3 = '''模板字符串,不支持变量引用,支持换行操作${age}'''
println(str1)
println(str2)
println(str3)
//数据类型
println(str1.getClass().toString())
println(str2.getClass().toString())
println(str3.getClass().toString())

1.3.3、语句结构

官网地址:The Apache Groovy programming language - Semantics 

1.3.4、数据类型

 官网地址:The Apache Groovy programming language - Semantics 

1.3.5、集合操作

//--------list集合-----
def list = [1,2,3]
//断言
assert list instanceof java.util.List
list.add(4)
println(list.size())
//集合与集合相加
def list2 = [5,6]
//将list2集合添加在list后
println(list.plus(list2))
//根据下标删除集合中元素
list.remove(1);
println(list)
//删除指定的集合元素
list.removeElement(3)
println(list)
//从集合中移除另一个集合中元素
def list3 = [4]
list.removeAll(list3)
println(list)
//从集合中弹出一个元素
println list.pop()
println(list)
//根据下标替换元素值
list.putAt(0,12)
println(list)
//遍历集合
list2.each {it ->println("item: ${it}")}

//---------map集合-----
def map = [tom:"tom",jack:"jack"]
//添加操作
map.put("java","java")
println(map)
//删除操作
//根据键做移除
map.remove("java")
//根据键值做移除
map.remove("tom","tom")
println(map)
//修改操作
map = map + ["yml":"yml"]
println(map)
map = map - ["jack":"jack"]
println(map)
//遍历map
map.each {key,value ->
    println("key:${key},value:${value}")
}
map.each {m ->
    println("key:${m.key},value:${m.value}")
}

其他参考官网: The Apache Groovy programming language - Semantics

1.4、使用Gradle创建普通Java工程 

修改配置:

1.5、使用Gradle创建Java ssm工程  

第一步创建一个普通的gradle的Java工程。

第二步修改bulid.gradle文件内容

plugins {
    id 'java'
    id 'war' //添加内容
}

group 'com.cjc'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}
//添加内容
dependencies {
    implementation 'org.springframework:spring-beans:4.1.7.RELEASE'
    implementation 'org.springframework:spring-web:4.1.7.RELEASE'
    implementation 'org.springframework:spring-webmvc:4.1.7.RELEASE'
    implementation 'org.springframework:spring-tx:4.1.7.RELEASE'
    implementation 'org.springframework:spring-test:4.0.5.RELEASE'
    implementation 'org.springframework:spring-jdbc:4.1.7.RELEASE'

    implementation 'org.mybatis:mybatis-spring:1.2.3'
    implementation 'org.mybatis:mybatis:3.3.0'

    implementation 'mysql:mysql-connector-java:5.1.36'
    implementation 'com.alibaba:druid:1.0.15'

    implementation "com.fasterxml.jackson.core:jackson-databind:2.2.3"
    implementation "com.fasterxml.jackson.core:jackson-annotations:2.2.3"
    implementation "com.fasterxml.jackson.core:jackson-core:2.2.3"

    implementation 'org.aspectj:aspectjweaver:1.8.6'
    implementation 'log4j:log4j:1.2.17'
    implementation 'org.slf4j:slf4j-api:1.7.25'
    implementation 'jstl:jstl:1.2'
    compileOnly 'javax.servlet:servlet-api:2.5'
    testImplementation group: 'junit' ,name: 'junit', version: '4.12'
}

创建配置文件:

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">


    <!-- 0.配置扫描包 -->
    <context:component-scan base-package="com.cjc">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

    <!-- 1.加载properties文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>


    <!-- 2.配置数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="username" value="${jdbc.userName}"></property>
        <property name="password" value="${jdbc.password}"></property>
        <property name="url" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClassName" value="${jdbc.driverClass}"></property>
    </bean>

    <!-- 4.配置数据源事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>


    <!-- 1.配置spring整合mybatis -->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>

    <!-- 2.配置扫描mapper接口的bean对象 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.cjc.dao"/>
    </bean>

</beans>

 数据库配置文件:

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.userName=root
jdbc.password=123456

springMVC配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

      <!-- 1.配置扫描包 -->
    <context:component-scan base-package="com.cjc" use-default-filters="false">
         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
         <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

     <!-- 2.配置内部资源视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!--3.处理静态资源文件 -->
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven/>
</beans>

 业务代码省略

在tomcat上部署项目并运行访问:

 

 测试访问:

1.6、对测试功能的支持

1.6.1、使用junit4测试

需要导入junit4的依赖

import org.junit.Test;

public class AppTest {
    @Test
    public void test1(){
        System.out.println("hello");
    }
}

 

 

1.6.2、使用Junit5测试

导入依赖

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
test {
    useJUnitPlatform()//支持junit5测试
}

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/736754.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript之类(1)

class基础语法结构&#xff1a; 代码&#xff1a; class MyClass {constructor() { ... }method1() { ... }method2() { ... }method3() { ... }... } 解释&#xff1a; 属性解释class是我们定义的类型(类)MyClass是我们定义的类的名称 constructor()我们可以在其中初始化对象m…

基于YOLOv5的PCB板缺陷检测系统的设计与实现(PyQT页面+YOLOv5模型+数据集)

简介 随着电子设备的广泛应用,PCB(印刷电路板)作为其核心部件,其质量和可靠性至关重要。然而,PCB生产过程中常常会出现各种缺陷,如鼠咬伤、开路、短路、杂散、伪铜等。这些缺陷可能导致设备故障,甚至引发严重的安全问题。为了提高PCB检测的效率和准确性,我们基于YOLOv…

2-14 基于matlab的GA优化算法优化车间调度问题

基于matlab的GA优化算法优化车间调度问题。n个工作在m个台机器上加工。已知每个工作中工序加工顺序、各工序的加工时间以及每个工件所包含的工序&#xff0c;在满足约束条件的前提下&#xff0c;目的是确定机器上各工件顺序&#xff0c;以保证某项性能指标最优。程序功能说明&a…

华为数通——单臂路由

单臂路由&#xff1a;指在三层设备路由器的一个接口上通过配置子接口&#xff08;或“逻辑接口”&#xff0c;并不存在真正物理接口&#xff09;的方式&#xff0c;实现原来相互隔离的不同VLAN&#xff08;虚拟局域网&#xff09;之间的互联互通。但是仅仅允许单播通信。 单臂路…

如何在Qt Designer中管理QSplitter

问题描述 当按下按钮时&#xff0c;我希望弹出一个对话框&#xff0c;用户可以在其中选择内容并最终按下 ‘Ok’ 按钮。我想在这个对话框中放置一个 QSplitter&#xff0c;左侧面板将显示树状结构&#xff0c;右侧将显示其他内容。如何正确实现这一点&#xff1f; 从 Qt 的示…

6.S081的Lab学习——Lab8: locks

文章目录 前言一、Memory allocator(moderate)提示&#xff1a;解析 二、Buffer cache(hard)解析&#xff1a; 三、Barrier (moderate)解析&#xff1a; 总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招。打算尝试6.S081&#xff0c;将它的Lab逐一实现&#xff0c;并…

番外篇 | 基于YOLOv5-RCS的明火烟雾检测 | 源于RCS-YOLO

前言:Hello大家好,我是小哥谈。RCS-YOLO是一种目标检测算法,它是基于YOLOv3算法的改进版本。通过查看RCS-YOLO的整体架构可知,其中包括RCS-OSA模块。RCS-OSA模块在模型中用于堆叠RCS模块,以确保特征的复用并加强不同层之间的信息流动。本文就给大家详细介绍如何将RCS-YOLO…

【原创】springboot+mysql海鲜商城设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

yii2 ActiveForm使用技巧

持续更新&#xff1a; 1、搜索输入框&#xff1a;form-inline <?php $form ActiveForm::begin([action > [index],method > get,options > [class > form-inline] &#xff08;增加此行代码&#xff09; ]); ?>

大型企业网络DHCP服务器配置安装实践@FreeBSD

企业需求 需要为企业里的机器配置一台DHCP服务器。因为光猫提供DHCP服务的能力很差&#xff0c;多机器dhcp多机器NAT拓扑方式机器一多就卡顿。使用一台路由器来进行子网络的dhcp和NAT服务&#xff0c;分担光猫负载&#xff0c;但是还有一部分机器需要放到光猫网络&#xff0c;…

本地离线模型搭建指南-中文大语言模型底座选择依据

搭建一个本地中文大语言模型&#xff08;LLM&#xff09;涉及多个关键步骤&#xff0c;从选择模型底座&#xff0c;到运行机器和框架&#xff0c;再到具体的架构实现和训练方式。以下是一个详细的指南&#xff0c;帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭…

【网络安全的神秘世界】已解决burpsuite报错Failed to start proxy service on 127.0.0.1:8080

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 解决burpsuite无法在 127.0.0.1&#xff1a;8080 上启动代理服务端口被占用以及抓不到本地包的问题 Burpsuite无法启动proxy…

RabbitMQ(六)仲裁队列、流式队列、异地容灾(联邦队列Federation Queue)

文章目录 仲裁队列1、创建交换机2、创建仲裁队列3、验证主节点宕机不影响消息发送和接收 流式队列&#xff08;不推荐&#xff0c;Kafka主场&#xff09;概念 异地容灾一、Federation插件概述 二、Federation交换机1、总体说明2、准备工作3、启用联邦插件4、添加上游连接端点5、…

【Flink metric】Flink指标系统的系统性知识:以便我们实现特性化数据的指标监控与分析

文章目录 一. Registering metrics&#xff1a;向flink注册新自己的metrics1. 注册metrics2. Metric types:指标类型2.1. Counter2.2. Gauge2.3. Histogram(ing)4. Meter 二. Scope:指标作用域1. User Scope2. System Scope ing3. User Variables 三. Reporter ing四. System m…

XSS跨站攻击漏洞

XSS跨站攻击漏洞 一 概述 1 XSS概述 xss全称为&#xff1a;Cross Site Scripting&#xff0c;指跨站攻击脚本&#xff0c;XSS漏洞发生在前端&#xff0c;攻击的是浏览器的解析引擎&#xff0c;XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。 XSS攻击者的目的就是…

实验室自用LabVIEW软件与商用软件价格差异分析

实验室自用LabVIEW软件与商用软件在价格上的差异源于功能与扩展包、技术支持与服务、使用场景与合规性、更新与维护、市场与定价策略、培训与教育资源及许可证管理与合规审计等方面的不同。商用软件提供更全面的功能和支持&#xff0c;确保高可靠性和合规性&#xff0c;因此价格…

OpenCV机器学习-人脸识别

一 基本概念 1 计算机视觉与机器学习的关系 计算机视觉是机器学习的一种应用&#xff0c;而且是最有价的应用。 2 人脸识别 哈尔(haar)级联方法 Harr是专门为解决人脸识别而推出的&#xff1b; 在深度学习还不流行时&#xff0c;Harr已可以商用&#xff1b; 深度学习方法&am…

K8S - 理解ClusterIP - 集群内部service之间的反向代理和loadbalancer

在Micro Service的治理中。 有两个很重要的点&#xff0c; 集群外部的用户/service 如何访问集群内的 入口服务(例如UI service&#xff09;集群内的service A 如何 访问 集群内的service B 为什么有上面的问题 无非是&#xff1a; 集群内的service 都是多实例的每个servic…

聚焦AIoT最后一公里:EasyCVR+AI视频技术在各领域的创新应用

随着5G、AI、边缘计算、物联网&#xff08;IoT&#xff09;、云计算等技术的快速发展&#xff0c;万物互联已经从概念逐渐转变为现实&#xff0c;全新的行业生态AIoT正在开启新时代。巨大的市场潜力与AI等新兴技术不断融合形成的庞大市场缺口&#xff0c;深度场景化应用落地诉求…