记录整理开发小结JAVA


一、JAVA

1.元注解

@Target({ElementType.METHOD})//注解的作用域
@Retention(RetentionPolicy.RUNTIME)//运行时注解,可以通过反射方式得到
@Inherited//可以被子类继承
@Documented


@Target是这个注解的作用域

METHOD(方法声明)
CONSTRUCTOR(构造方法声明)
FIELD(字段声明)
LOCAL VARIABLE(局部变量声明)
PACKAGE(包声明)
PARAMETER(参数声明)
TYPE(类接口)

@Retention是它的生命周期

SOURCE(只在源码显示,编译时丢弃)
CLASS(编译时记录到class中,运行时忽略)
RUNTIME(运行时存在,可以通过反射读取)

@Inherited是一个标识性的元注解,它允许子注解继承它。

@Documented,生成javadoc时会包含注解。

2,反射

得到类的字节码的几种方式:

(1)、Class.forName("com.cj.test.Person"); 这就是上边我们用的方式
(2)、对象.getClass();
(3)、类名.class;

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

二、IDEA

三 ,Mysql

1,环境

1,服务启动停止

#启动 MySQL 服务命令:
net start MySQL服务名
# 停止 MySQL 服务命令:
net stop MySQL服务名

2,登录

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

3,版本

c:\> mysql -V
mysql> select version();

4,退出登录

exit
或
quit

2,数据库操作

##1、查看所有的数据库

show databases;

2、创建数据库

create database 数据库名;

3、使用数据库

use 数据库名;

4、查看某个库的所有表

show tables; #要求前面有use语句
show tables from 数据库名;

5、建表

create table student(
id int,
name varchar(20)
);

6、查看表库的创建信息

show create table 表名;
show create database 库名;

7,删表删库

drop table 表名称;
drop table if exists 表名称;
drop database 数据库名;

8,默认字符集

my.ini配置文件
[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci

9,查看编码命令

show variables like 'character_%';
show variables like 'collation_%';

10,数据导入

mysql> source d:\mysqldb.sql

11,查看表结构

DESC employees;

3,修改表

1,追加一个列

ALTER TABLE 表名 ADDCOLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;
ALTER TABLE dept80
ADD job_id varchar(15);

2,修改一个列

ALTER TABLE 表名 MODIFYCOLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名
2;
ALTER TABLE dept80
MODIFY last_name VARCHAR(30);
ALTER TABLE dept80
MODIFY salary double(9,2) default 1000;

3, 重命名一个列

ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;
ALTER TABLE dept80
CHANGE department_name dept_name varchar(15);

4, 删除一个列

ALTER TABLE 表名 DROPCOLUMN】字段名;
ALTER TABLE dept80
DROP COLUMN job_id;

5, 重命名表

RENAME TABLE emp
TO myemp;
ALTER table dept
RENAME [TO] detail_dept;

4,清空表

TRUNCATE TABLE detail_dept;

问题

读问题:脏读,幻读,不可重复读
写问题:丢失更新

四、Maven

maven仓库:https://mvnrepository.com/

<!-- 阿里云镜像地址 -->
<mirrons>
	<mirnor>
		<id>nexus-aliyun</id>
		<mirron0f>central</mirronOf>
		<name>Nexus aliyun</name>
		<unl>http://maven.aliyun.com/nexus/content/gnoups/public</url>
	</mirnor>
</mirrors>
		<!--测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>
        <!--jar包剔除-->
        <dependency> 
    		<groupId>com.nk</groupId>
    		<artifactId>system</artifactId>
    		<version>0.0.1</version>
    		<exclusions>
        		<exclusion>
           		 	<groupId>org.slf4j</groupId>
            		<artifactId>slf4j-log4j12</artifactId>
        		</exclusion>
  	  		</exclusions>
		</dependency>


五 、Spring

1,IOC

IOC控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
使用 IOC 目的:为了耦合度降低
IOC 底层原理:
xml 解析、工厂模式、反射

IOC(BeanFactory 接口)

1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
2、Spring 提供 IOC 容器实现两种方式:(两个接口)
(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
* 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人
员进行使用
* 加载配置文件时候就会把在配置文件对象进行创建

IOC 操作 Bean 管理(概念)

1、什么是 Bean 管理
(0)Bean 管理指的是两个操作
(1)Spring 创建对象
(2)Spirng 注入属性
2、Bean 管理操作有两种方式
(1)基于 xml 配置文件方式实现
(2)基于注解方式实现

IOC 操作 Bean 管理(bean 生命周期)

1、生命周期
(1)从对象创建到对象销毁的过程
2、bean 生命周期
(1)通过构造器创建 bean 实例(无参数构造)
(2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)
(3)调用 bean 的初始化的方法(需要进行配置初始化的方法)
(4)bean 可以使用了(对象获取到了)
(5)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)

3、bean 的后置处理器,bean 生命周期有七步
(1)通过构造器创建 bean 实例(无参数构造)
(2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)
(3)把 bean 实例传递 bean 后置处理器的方法 postProcessBeforeInitialization 
(4)调用 bean 的初始化的方法(需要进行配置初始化的方法)
(5)把 bean 实例传递 bean 后置处理器的方法 postProcessAfterInitialization
(6)bean 可以使用了(对象获取到了)
(7)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)

2,AOP

1、什么是 AOP

(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得
业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能

AOP 底层使用动态代理
@before: 前置通知,在方法执行之前执行。
@After:后置通知,在方法执行后执行。
@AfterReturning: 返回通知,在方法返回结果之后执行。
@AfterThrowing:异常通知,在方法抛出异常之后执行。
@Around:环绕通知,围绕着方法执行。

六、Mybatis

1.插入数据后返回主键

https://mybatis.org/mybatis-3/zh/getting-started.html

在mapper.xml的<insert>标签里插入语句里面添加:

           <selectKey resultType="java.math.BigDecimal" order="AFTER" keyProperty="id">
               SELECT ARCHIVES_GROUP.CURRVAL from DUAL
           </selectKey> 

或者

         <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">
               SELECT ARCHIVES_GROUP.Nextval  from DUAL
           </selectKey>

//ARCHIVES_GROUP是序列

//nextval的值是每调用一次就增加一次;currval的值调用时,还是和自身会话的当前值一样

七,SpringBoot

1,pom依赖

    <!--依赖管理-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
    </parent>
    
    <!-- 当前项目里面重写配置,maven版本管理就就近原则-->
    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>
    <dependencies>
        <!--Web 场景启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--yml提示信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
         <!--实体类生成geter,seter等方法以及日志-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>       
    </dependencies>

    <build>
        <plugins>
            <!--打包插件,把项目打成jar包,直接在目标服务器执行即可-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--打包不用打包yml提示信息-->
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                        </exclude>
                    </excludes>
                </configuration>                
            </plugin>
        </plugins>
    </build>

2,注解

1,@Configuration
2,@Bean、@Component、@Controller、@Service、@Repository
3,@ComponentScan、@Import
4,@Conditional  条件装配:满足Conditional指定的条件,则进行组件注入
5,@ImportResource 原生配置文件引入
6,@ConfigurationProperties
7,@PathVariable @RequestHeader ,@RequestParam ,@CookieValue参数注解
@ModelAttribute、 @RequestParams @MatrixVariable

、@RequestBody

3,自动配置

1,@SpringBootConfiguration
2,@ComponentScan
3,@EnableAutoConfiguration,@AutoConfigurationPackage,自动配置包,@Import(AutoConfigurationImportSelector.class)

4,yml文件配置

#  debug模式开启配置项
debug: true 
#可以指定静态资源路径
spring:
  mvc:
    static-path-pattern: /res/**
  web:
    resources:
      static-locations: [classpath:/haha/]

八, Linux

`
vim 打开编辑
i 修改
ecs+: q!退出不修改 wq保存修改退出。

`

1,修改静态ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述

systemctl restart network

2,

九,Docker

1,安装

CentOS7能上外网,安装相关环境

yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils

设置stable镜像仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

设置阿里云仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装DOCKER CE

yum -y install docker-ce docker-ce-cli containerd.io

启动docker

systemctl start docker

测试查看

docker version
docker run hello-world

卸载

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

重启服务器

systemctl daemon-reload
systemctl restart docker

启动 docker & 设置 docker 开机自启

systemctl enable docker

阿里云镜像加速

2,常用命令

帮助启动类命令

·	启动docker: systemctl start docker
·	停止docker: systemctl stop docker
·	重启docker: systemctl restart docker
·	查看docker状态: systemctl status docker
·	开机启动: systemctl enable docker
·	查看docker概要信息: docker info
·	查看docker总体帮助文档: docker --help
·	查看docker命令帮助文档: docker 具体命令 --help

镜像命令

·	列出本地主机上的镜像:docker images
·	查找镜像:	docker search [OPTIONS] 镜像名字
·	下载镜像:	docker pull 某个XXX镜像名字
·	查看镜像/容器/数据卷所占的空间: docker system df 
·	删除镜像:	docker rmi 某个XXX镜像名字ID
				docker rmi  -f 镜像ID
·	删除多个:	docker rmi -f 镜像名1:TAG 镜像名2:TAG
·	删除全部:	docker rmi -f $(docker images -qa)

容器命令

·	拉取镜像:	docker pull ubuntu
·	新建+启动容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
		OPTIONS说明(常用):有些是一个减号,有些是两个减号
		--name="容器新名字"       为容器指定一个名称
		-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
		-i:以交互模式运行容器,通常与 -t 同时使用
		-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用也即启动交互式容器(前台有伪终端,等待交互)
		-P: 随机端口映射,大写P
		-p: 指定端口映射,小写p
·	启动交互式容器(前台命令行)docker run -it centos /bin/bash
·	列出当前所有正在运行的容器: docker ps [OPTIONS]
		OPTIONS说明(常用):
		-a :列出当前所有正在运行的容器+历史上运行过的
		-l :显示最近创建的容器。
		-n:显示最近n个创建的容器。
		-q :静默模式,只显示容器编号。
·	退出容器
	·	run进去容器,exit退出,容器停止
	·	run进去容器,ctrl+p+q退出,容器不停止
·	启动已停止运行的容器:	docker start 容器ID或者容器名
·	重启容器:	docker restart 容器ID或者容器名	
·	停止容器:	docker stop 容器ID或者容器名
·	强制停止容器:	docker kill 容器ID或容器名
·	删除已停止的容器:	docker rm 容器ID
·	一次性删除多个容器实例:	docker rm -f $(docker ps -a -q)
							docker ps -a -q | xargs docker rm
·	启动守护式容器(后台服务器)docker run -d 容器名		


·	redis 前后台启动演示case
·	前台交互式启动: docker run -it redis:6.0.8
·	后台守护式启动: docker run -d redis:6.0.8
·	查看容器日志:   docker logs 容器ID
·	查看容器内运行的进程:	docker top 容器ID
·	查看容器内部细节:	docker inspect 容器ID
·	进入正在运行的容器并以命令行交互:	docker exec -it 容器ID bashShell
·	重新进入: docker attach 容器ID		

十,git

.gitignore

target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar

修改总项目的.gitignore,把小项目里的垃圾文件在提交的时候忽略掉
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar

**/mvnw
**/mvnw.cmd

**/.mvn
**/target

.idea


**/.gitignore

**/README.md


十一,vue

在vs code中创建代码片段:
文件 => 首选项 => 用户代码片段 => 新建全局代码片段/或文件夹代码片段:vue-html.code-snippets

{
		"vue htm": {
			"scope": "html",
			"prefix": "vuehtml",
			"body": [
				"<!DOCTYPE html>",
				"<html lang=\"en\">",
				"",
				"<head>",
				"    <meta charset=\"UTF-8\">",
				"    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
				"    <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",
				"    <title>Document</title>",
				"</head>",
				"",
				"<body>",
				"    <div id=\"app\">",
				"",
				"    </div>",
				"    <script src=\"vue.min.js\"></script>",
				"    <script>",
				"        new Vue({",
				"            el: '#app',",
				"            data: {",
				"                $1",
				"            }",
				"        })",
				"    </script>",
				"</body>",
				"",
				"</html>",
			],
			"description": "my vue template in html"
		}
	}

十二,ES

十三,nginx

工具

前端工具:Visual Studio Code vscode
数据库表工具:powerdesigner

他人总结

总结:
路线
https://www.bilibili.com/read/cv5216534/
他人博客
java
https://blog.csdn.net/PorkBird/article/details/113666542
spring
1、https://blog.csdn.net/weixin_45496190/article/details/107059038
2、https://blog.csdn.net/weixin_45496190/article/details/107067200
3、https://blog.csdn.net/weixin_45496190/article/details/107071204
4、https://blog.csdn.net/weixin_45496190/article/details/107082732
5、https://blog.csdn.net/weixin_45496190/article/details/107092107
springMVC
https://blog.csdn.net/weixin_44751434/article/details/119358203?spm=1001.2014.3001.5501

Spring Cloud

  1. https://blog.csdn.net/u011863024/article/details/114298270
  2. https://blog.csdn.net/u011863024/article/details/114298282
  3. https://blog.csdn.net/u011863024/article/details/114298288

谷粒商城篇章1:https://blog.csdn.net/unique_perfect/article/details/111392634
谷粒商城篇章2:https://blog.csdn.net/unique_perfect/article/details/113824202
谷粒商城篇章3:https://blog.csdn.net/unique_perfect/article/details/114035775

maven http://heavy_code_industry.gitee.io/code_heavy_industry/pro002-maven/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值