软件工程期末大项目

🐇Gradle
Gradle Wrapper实际上就是一个脚本,使用它可以下载和使用指定版本的gradle,根据需要进行在使用之前进行下载,有效避免本地机器的设定等环境一致性问题。
虽然gradle的安装已经非常简单,但是使用gradle wrapper是的开发这能够以一种更为标准化的方式创建gradle项目。
每一个用gradle编译的工程,都会有一个gradle/wrapper目录,目录下的两个文件:
gradle-wrapper.jar:用于下载Gradle的相关代码实现
gradle-wrapper.properties:wrapper所使用的配置信息,比如gradle的版本等信息

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

distributionBasedistributionPath组合在一起,是解压gradle-4.8.1-bin.zip之后的文件的存放位置。distributionPathdistributionBase指定的目录下的子目录。
下载位置可以和解压位置不一样。
zipStoreBasedistributionBase有两种取值:GRADLE_USER_HOMEPROJECT
其中,GRADLE_USER_HOME表示用户目录。
在Windows下是%USERPROFILE%/.gradle,例如C:\Users\<user_name>\.gradle\
在Linux下是$HOME/.gradle,例如~/.gradle
PROJECT表示工程的当前目录,即gradlew所在的目录。
各种属性的具体含义如下:

  • https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip 下载gradle的4.8.1版本
  • 下载的gradle-4.8.1-bin.zip存放到C:\Users\<user_name>\.gradle\wrapper\dists目录中
    (注:具体还有2级目录,即全路径为C:\Users\<user_name>\.gradle\wrapper\dists\gradle-3.1-bin\<url-hash>\,gradle-3.1-bin目录是根据下载的gradle的文件名来定的,目录名是根据distribution url路径字符串计算md5值得来的,具体参考PathAssembler.java中的rootDirName()和getHash(),PathAssembler.java的位置见本文最后的参考路径)
  • 解压gradle-4.8.1-bin.zip,将解压后的文件存放到C:\Users\<user_name>\.gradle\wrapper\dists中(注:具体还有2级目录,同上)

🐇build.gradle

buildscript {
   
	//ext用于定义属性
	ext {
   
		springBootVersion = '1.5.10.RELEASE'
	}
	//使用了Maven的中央仓库(也可指定其他仓库)
	repositories {
   
		maven {
   url 'http://maven.aliyun.com/nexus/content/groups/public/'}
	}
	//依赖关系
	dependencies {
   
//classpath	声明在执行其它脚本时ClassLoader可以使用这些依赖库
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}
//使用插件
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'

group = 'com.zmh'
version = '0.0.1'
//指定编译.java文件的JDK版本
sourceCompatibility = 1.8

//默认使用Maven的中央仓库,此处改用自定义的镜像库
repositories {
   
	maven {
   url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
//configurations是依赖集合,可为工程声明额外依赖
configurations {
   
	providedRuntime
}

dependencies {
   
    compile('org.springframework.boot:spring-boot-starter-web')
	//数据库相关
    compile('mysql:mysql-connector-java')
	compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1')
    //友好的HTML规范 搭配spring.thymeleaf.mode=LEGACYHTML5
	compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    compile('net.sourceforge.nekohtml:nekohtml:1.9.22')
    //热部署 搭配spring.thymeleaf.cache=false
    compile('org.springframework.boot:spring-boot-devtools')
    //SpringBoot内置的Redis
    compile('org.springframework.boot:spring-boot-starter-data-redis')
    //内置tomcat 仅开发测试用
	//runtime('org.springframework.boot:spring-boot-starter-tomcat')
    //spring-boot-admin 图形化管理页面
    compile('de.codecentric:spring-boot-admin-server:1.5.7')
    compile('de.codecentric:spring-boot-admin-server-ui:1.5.7')
    compile('de.codecentric:spring-boot-admin-starter-client:1.5.7')
	//pagehelper
	compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: '1.2.3'
    //使用的是shiro-spring 而非shiro
    compile('org.apache.shiro:shiro-spring:1.4.0')
	compile('com.github.theborakompanioni:thymeleaf-extras-shiro:1.2.1')
	//测试
    testCompile('org.springframework.boot:spring-boot-starter-test')
}


🐇gradlew.bat
针对Windows的shell脚本与批处理命令,当项目被push到远程后,其他用户使用Git克隆下来,只需在本地执行./gradlew即可进行项目的构建与任务的执行,同时用户本机并不需要提前安装好Gradle分发包.


🚢代码分析
controller–>service–>mapper

  • AdminController
    在页面标签栏里显示日志文件
package com.dwz.xietongoa.controller;

import com.dwz.xietongoa.dto.ReturnDto;
import com.dwz.xietongoa.util.ReadFileUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author DWZ
 * @date 2020/4/18 16:24
 * 在页面标签栏里显示日志文件
 */
@Controller
@RequestMapping(value = "/admin")
public class AdminController {
   
    //这两个参数从application.properties获取
    @Value("${logback.filepath}")
    private String filePath;
    @Value("${logback.charset}")
    private String charSet;

    /**
     * 获取所有日志文件的文件名
     * @return
     */
    @RequestMapping(value = "/getFileNames")
    @ResponseBody
    public ReturnDto getFileNames(){
   
        return ReadFileUtil.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSND是一个非常流行的IT技术社区,在软件工程期末项目中,我计划使用CSND进行以下几个方面的工作。 首先,我们可以利用CSND的问答功能来帮助解决项目中遇到的问题。在实施软件工程项目的过程中,我们难免会遇到一些困难和疑问。通过在CSND上提出问题,我们可以得到来自全球各地技术人员的回答和建议。这将大大缩短我们解决问题所需要的时间,提高项目的效率和质量。 其次,我们可以通过在CSND上发布博客或技术文章来分享我们的项目经验和成果。这样做不仅能够让我们的项目更加有影响力,还能够帮助其他人更好地了解和学习相关的技术知识。在项目中遇到的挑战、解决方案和经验教训都可以通过博客分享给其他人,促进技术交流和学习。 另外,我们还可以利用CSND的资源和工具来提高项目的开发效率。CSND上有很多开源项目、博客、教程和工具,这些资源对于项目开发非常有价值。我们可以充分利用这些资源来减少开发时间和成本,并且能够获得一些比较成熟和可靠的解决方案。 最后,CSND也提供了职业发展和招聘的平台。在软件工程项目中,我们可以通过关注一些相关的行业专家和公司,了解行业动态和招聘信息。这对于我们未来的职业规划和就业找工作非常有帮助。 总之,CSND在软件工程期末项目中具有很大的应用潜力。通过使用CSND的问答、博客、资源和招聘平台,我们可以提高项目的效率、质量和影响力,并且能够从全球技术社区获得更多的支持和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值