前言
Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面。Transmission以MIT许可证和GNU通用公共许可证双许可证授权,因此是一款自由软件。
本着服务器不用也是浪费,还不如挂PT,赚点魔力值。
创建程序存储目录
1sudo mkdir -p /home/docker/BT/transmission
进入文件夹
1cd /home/docker/BT/transmission
拉取Transmission容器
1sudo docker pull linuxserver/transmission
创建docker容器
容器仓库地址:https://hub.docker.com/r/linuxserver/transmission
1234567891011sudo docker run --restart=always --name transmission -d \-e TRANSMISSION_WEB_HOME=/transmission-web-control/ \-e USER=test \-e PASS= ...
需求
在本地没有安装Tomcat,也可以运行Tomcat的项目,最好是在maven中集成Tomcat,这样加载一下maven的依赖就可以了。
项目实现
创建maven项目
创建maven项目时,需要设置一些必须的配置。
JDK
Archetype
JDK版本根据自己的需求选择,我这里选择JDK11.
Archetype需要选择org.apache.maven.archetypes:maven-archetype-webapp,版本选择1.0
添加Tomcat依赖
打开项目的pom.xml文件
添加Tomcat7插件
port:表示设置访问的端口,可以是80或者其他都可以。
1234567891011<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> ...
SpringMVC介绍
什么是SpringMVC
SpringMVC=Spring+MVC。
SpringMVC是一个Spring内置的MVC Web框架,英文缩写(Model-View-Controller)。
MVC框架解决了Web开发中常见的问题(参数接收、文件上传、表单验证、国际化等等),而且使用简单,与Spring无缝集成,支持RESTful风格而的URL请求。采用了松散耦合可插播组件结构,比其他MVC框架更具有扩展性和灵活性。
SpringMVC的作用
MVC模式(Model-View-Controller):解决页面代码和后台代码的分离。
MVC模型
通常情况下,一个完整的 Java Web 应用程序,其结构如下图所示。
MVC 模式将应用程序划分成模型(Model)、视图(View)、控制器(Controller)等三层,如下图所示。
分层
描述
Model(模型)
它是应用程序的主体部分,主要由以下 2 部分组成: 实体类 Bean:专门用来存储业务数据的对象,它们通常与数据库中的某个表对应,例如 User、Student 等。 业务处理 ...
Mybatis
介绍
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
下面带你动手用mybatis 注解方式写一个简单的增删改查
注解开发案例
mybatis注解开发适用于一些简单的系统,数据库系统不复杂的系统使用注解开发效率会高很多,但对于一些复杂的数据库系统或者一些复杂的要求,这时候使用注解开发可能就没有办法完成了。
目录结构
123456789101112131415161718192021E:.├─.idea│ ├─artifacts├─.mvn│ └─wrapper└─src ├─main │ ├─java │ │ └─com │ │ ├─Entity │ │ ├─Mapper │ │ ...
新年回来怎么能不看下电视呢,无奈好多直播都是720P或者是好看的剧都需要VIP,可我只有腾讯年会,没有爱奇艺,有些剧想看又不想开会员,只能白嫖了。就找了一些TV版的破解软件凑合一下。
工欲善其事,必先利其器。我家里电视机也买了有些年头了,创维50V8E,酷开系统,自带的系统通过打开U盘安装软件非常不好用,经常有很多软件扫描不出来,之前用ES文件浏览器手机版安装在电视机,也还能用,但不好用,比较是手机版的,操作非常不方便,临时用一下还行,但今年回来ES文件浏览器也用不了,就需要其他的工具了,这回找到小白文件浏览器,感觉还不错。
小白文件管理器
介绍
与其他移植到电视的文件管理器不同,小白文件管理器是完全针对电视来进行设计、开发,因此出色地适配了电视的各种操作方式,就算使用电视遥控器也能快速完成文件管理操作。此外,在小白文件管理器;智能分类,远程管理;等功能的帮助下,文件管理操作变得更为简单、轻松。为电视而生 回归本源,为电视而生,完美适配电视的显示规格,使用遥控器就能完成文件管理操作;智能分类,数据智能分类,再也不用进入一个个文件夹去找将视频、图片、音乐、安装文件啦;远程管理 使 ...
什么是GitHub Actions?
GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。
GitHub Actions简单来说就是一个可以帮你自己跑脚本的机器,并且你写的脚本和别人写的脚本都放在一个仓库里面,GitHub把这个仓库公开,大家可以互相用别人写好的脚本,并且,GitHub还提供Linux、Windows、macOS虚拟机来运行工作,极大提高开发效率(当然,主要是免费)。
Actions
actions可以说是一个工作流程,比如一个项目的构建需要用到一些操作,构建代码、运行测试、登录远程服务器、发布到第三方服务器等等,GitHub将这些操作称之为Actions,也就是执行一个项目的完整流程的脚本叫做Actions。
我们在使用的时候,如果需求不复杂,我们完全可以去找别人写好的actions来用就行,减少自己编写脚本的时间,将各种actions组合在一起,就变成一个新的工作流了。这也是GitHub Actions比较特别的 ...
AOP介绍
什么是AOP?
AOP(Aspect Oriented Programming)直译过来就是面向切面编程,指导开发者如何组织程序结构。
我们先回顾一下OOP(Object Oriented Programming)面向对象编程,OOP作为面向对象编程的模式,获得了巨大的成果,OOP的主要功能是数据封装、继承和多态。
而AOP是一种编程思想,是面向对象编程(OOP)的一种补充,面向对象编程将程序抽象成各个层次,而面向切面编程将程序抽象成各个切面。
作用:在不惊动原始设计的基础上为其进行功能增强。
Spring理念:无侵入式/无入侵式。
从该图可以很形象地看到,所谓漆面,相当于应用对象的横切点,我们可以将其单独抽象为单独的模块。
为什么需要AOP?
我们在做开发时,经常会遇到在多个模块之间有某段重复的代码,在传统的面向过程编程中,我们一般的做法是将这些重复的代码封装成一个方法,然后在需要的地方直接调用这个方法,这样当这段代码需要修改时,我们只需要修改这个方法就可以了。
然而需求总是多变的,有一天,我们需要在这个重复的代码进行增加某功能,但原来的方法不能改变,我们又需要将 ...
本次实验使用的MariaDB数据库,不使用MySQL,两者的使用方式是一样的,如果你电脑没有安装MariaDB,你应该先去安装。
添加数据库
数据库sql文件在项目的根目录下,自行添加到数据库。
项目下载地址:https://rookie1679.lanzoum.com/id5Rn0kn6z5a
添加依赖
123456789101112131415161718192021222324252627282930313233343536<!-- mariadb数据库--> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>3.1.0</version> </dependency><!-- 数据库连接池管理器--> <dependency> ...
第一个纯注解开发项目
创建类
创建一个数据层、业务层的类
数据层:
123456789101112package dao.impl;import dao.BookDao;import org.springframework.stereotype.Repository;@Repository("bookDao")public class BookDaoImpl implements BookDao { @Override public void save() { System.out.println("BookDaoImpl..."); }}
业务层:
123456789101112package service.impl;import org.springframework.stereotype.Service;import service.BookService;@Service("bookService")public class BookServ ...
题目
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
**注意:**最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
提示:
nums1.length == m + n
nums2.length == n
0 <= m, n <= 200
1 <= m + n <= 200
109 <= nums1[i], nums2[j] <= 109
示例
示例1:
1234输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解释:需要合并 [1,2,3] 和 [2,5,6] 。合并结果是 [1,2,2,3,5,6] ...