- 博客(38)
- 收藏
- 关注
原创 springboot运维实用篇
在resources目录下创建新的目录config,添加新的配置文件可以覆盖原有的配置文件,在配置文件中,冲突的属性会被新创的配置文件覆盖,不冲突的就是并在一起,都可以使用。一共有四级配置文件,分别是类路径下的配置文件,config文件下的配置文件,同层级目录下的配置文件,同层级config文件中的配置文件,优先级依次递增。在工程目录下创建config文件,再将yml文件添加到config文件中覆盖配置信息(四级,运维组长)属性加载的优先顺序:临时属性的优先级大于配置文件的属性(一级,开发人员)
2024-11-26 10:20:42
313
原创 @Primary注解,@PostConstruct和@PreDestroy注解
Primary注解就是在spring容器解析相同类型的bean时,优先获取的bean。测试类在获取bean对象时就会优先获取AccountDaoImplOne。
2024-11-17 14:33:52
266
原创 MybatisPlus知识
定义一个Mp(mmybatisplus)拦截器,然后在里面设置具体的拦截器。online为null是因为数据库中没有该字段。
2024-11-13 20:18:22
1236
原创 将Excel文件的两个表格经过验证后分别读取到Excel表和数据库
遍历读取数据,建两个表,负责人和业主表,业主表有外键,负责人表添加手机号正则验证负责人和业主的正确数据添加到数据库,错误的添加到Excel表负责人错误信息,业主错误信息。
2024-11-11 20:35:32
436
原创 java如何多线程批量处理百万级的数据
2.使用了subList()方法将i从0到改模块大小1000条数据添加到parts列表里面(使用Math.min()方法比较整个表的大小和模块的大小,选择更小的,防止报错)3.遍历每一个模块中的每一行数据row,调用自己创建的existsInFirstSheet()方法来检查数据row是否在负责人(firstSheetData)表格中存在。四:将存在的业主信息结果输出到一个新的Excel中,以负责人名称为工作表名称,将对应的业主数据分离到不同的工作表。
2024-11-07 18:43:41
3395
原创 Spring中@Autowired@Resource和@Inject注解区别
同时,它默认是采用byType装配,当指定了1SR-330规范中的@Named注解之后,变成byName装配。它也可以出现在方法上,构造函数上和字段上但是需要注意的是:因为IRE无法决定构造方法注入的优先级,所以规范中规定类中只能有一个构造方法带@Inject注解。@Autowired:来源于spring框架自身默认是byType自动装配,当配合了@Qualifier注解之后,在没有指定name属性时是byType自动装配,当指定了name属性之后,采用byName方式自动装配。
2024-11-06 09:23:18
531
原创 @Conditional注解
通过@Conditonal注解来实现Bean的选择性注册,当两个方法名相同时,根据默认的Bean规则会调用第二个数据源,也就是Linux,方法名不同时。就会调用第一个数据源window。
2024-11-05 14:17:43
337
原创 注解开发驱动之注入时机和设定注入条件的注解
当一个bean被标记为@Lazy时,它不会在容器启动时立即初始化,而是在第一次真正需要使用这个bean的时候才进行实例化。一:@DependsOn注解,设定两个Bean的创建顺序。原因是再目录中监听器的类先被扫描(L在S之前)三:@Conditional注解。不获取任何bean启动容器。
2024-11-04 21:41:33
164
原创 Spring注解开发中Import注解
这是就可以使用@Import注解,写在SpringConfiguration类上方,这样在传字节码文件时JdbcConfig类就不需要再写@Configuration注解或者@Component注解。也可以使用@Component注解,因为spring的扫描机制时先扫类,再扫方法。不管写不写注解,只要用了字节码文件方式传入spring容器,那么都能够成功打印。
2024-11-04 20:39:17
186
原创 spring注解开发中的Bean
Bean注解如果不写name和value属性,那么会使用默认的值也就是方法名,如果发生了方法重载,也就是有另一个重名的方法时,会以后面的方法为准。
2024-11-03 15:03:56
199
原创 SpringBoot多环境开发配置
spring.profiles 已经被弃用,取而代之的是 spring.config.activate.on-profile。下方图片的老方法已经被弃用,在springBoot2.4版本以上不能用。还可以使用properties配置文件来实现。
2024-11-03 10:52:30
250
原创 SpringBoot中yaml数据读取的三种方式
二:通过自动装配Environment实现调用。三:定义一个Enterprise实体类。一:通过@Value注解直接读取。一定要注意层级的划分。
2024-11-03 09:47:22
304
原创 SpringBoot入门
SpringBoot实现前后端分离,通过maven生命周期的package操作生成target目录下的jar包,然后找到target文件通过cmd命令执行。如果不想使用tomcat使用jetty的话需要使用排除依赖。
2024-11-02 10:42:36
176
原创 SSM中maven
子工程继承父工程,简化配置,减少版本冲突,简化代码。和java继承类似,在子工程pom文件中写标签,然后将父工程中的依赖信息复制到标签中。maven分模块就是在多人操作一个项目时将maven模块导入依赖,注意仓库里面没有资源坐标,需要使用install操作下载。pom文件中直接写的依赖叫做直接依赖,直接依赖中用到的依赖叫做间接依赖,两者都可以在项目中直接使用。特殊优先:当一个依赖中重复写了多次,不同的版本号,以后写的为准。排除依赖:别人的东西太破烂了,自己不想用。三:可选依赖和排除依赖。
2024-11-02 08:59:11
242
原创 SSM中的Aop
Object[] objects: 表示调用目标方法时传递的实际参数数组。这些参数是在调用目标方法时传入的,通过这个数组可以在 afterReturning 方法中访问它们。通过这个对象,可以访问到目标方法所属的类的其他属性和方法。第一个*表示任意的访问修饰符和返回值类型 * 第二个表示任意的方法 * ..表示任意的参数列表。开启注解所用的标签 基于xml的aop:用aop:config将某个bean设置为切面。spring配置文件,通过bean配置前置通知,后置通知和环绕通知。三:基于注解实现aop。
2024-11-01 15:17:08
284
原创 java反射机制和代理
想知道java类的属性和方法,就需要先获得它的字节码文件(.class)对应的Class类型的对象。每一个对象都可以通过Object类的getClass()方法获得Class实例。java反射机制简单的说就是在运行状态时(两个状态分别时编译和运行时),java能够获取自身的信息。只要有类的名字就能获取类的信息。在编译时并没有将磁盘中的代码放进内存中,而是只做了一些翻译功能,到了运行期才是在内存中执行代码。
2024-10-31 18:11:35
141
原创 io流中的文件加密和解密
文件加密和解密运用到了^(异或)符号,异或符号,当两边都为true或者false时,返回false,不同时返回true,当两边都是数字时,会将两边的数字转换为二进制再对齐进行异或处理,得到一串二进制数字再转换为十进制。如果异或一个数字两次,那么返回的就是原始值,从而实现解密文件。那么只需要在文件拷贝使用write方法是任意异或一个数字,那么拷贝出来的文件就无法查看。同理,要解密只需要将加密文件再进行拷贝到解密文件中。
2024-10-31 15:02:34
223
原创 多线程回顾
在性能上来说,如果竞争资源不激烈,两者的性能是差不多的,而当竞争资源非常激烈时(即有大量线程同时竞争),此时Lock的性能要远远优于synchronized。3)Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断;这时就要设置线程的优先级(setPriority()方法设置优先级,getPriority()方法获取优先级),默认为五,最大为10,最小为1。线程池是有上限的,可以自己设置,如果任务过多,就排队等待。
2024-10-31 14:05:10
769
原创 IO流回顾
FileWriter和FIleReader,直接写入字符,不会出现乱码,一次读取一个字符。2.通过数组,一次性拷贝完,但是如果文件过大,不能立即在内存中申请足够的空间。读取规定字节数到数组中,b代表数组,0代表跳过的字节个数,3表示读取个数。bufferedReader和bufferedWriter。3.一次性读1024个字节,再一次性写入1024个字节。二:ObjectOutPutStream使用序列化功能。字节流,每次读取单个字节。1,通过字节拷贝,效率低。
2024-10-29 21:38:14
361
原创 集合以及集合操作
HashSet元素排列顺序和添加顺序不一样,集合元素值可以为null,当存入元素时会调用hashcode()方法来得到hashcode值,两个对象的hashcode值相同并且equals方法返回值为true才会被认为两个元素相等。使用headSet方法和tailSet方法来遍历查询不及格学生和90分以上学生。TreeSet只能对实现了Comparable接口的类对象进行排序。HashSet和TreeSet。
2024-10-29 14:16:46
293
原创 java基础回顾
一:final关键字:final,本意为”最终的,不可更改的”,可以使用该关键字修饰类、成员方法、成员变量使用final修饰类,表示该类是最终的,不能被继承,防止滥用继承使用final修饰成员方法,表示该方法是最终的,不能被重写,防止不经意间重写方法使用final修饰成员变量,表示该成员变量必须赋值,而且不能更改通常情况,我们会使用static和final关键字组合使用,来声明常量:所谓的常量,就是一旦声明不能更改其作用就是,声明一些公共的数据,方便使用,例如:税率、圆周率等。
2024-10-28 20:41:35
1074
原创 使用迭代器遍历map集合
来得到一个列表,然后再通过stream操作实现过滤得到另一个集合studentRspFilterList,再用。从 student 对象中获取 Scores 列表 list,遍历list列表中的Scores对象,再用日志打印。注意键是 StudentRsp 的 studentId,值是 StudentRsp 对象本身。从 entry 中获取 StudentRsp 对象 student,通过student对象获取学生姓名。先将Map集合中所有的键对象转换为。二:entryset。
2024-10-23 14:22:24
515
原创 spring的注解驱动
一:不支持版本号说明jdk版本过高,需要在pom.xml文件中进行配置。@Import导入jdbcConfig.class类。测试类:通过创建注解容器直接在测试类中写sql语句。@PropertySource标签,相当于。
2024-10-21 15:25:32
271
原创 函数式编程
例2.2:intBinaryOperator是jdk中自带的接口,通过applyAsInt方法将a和b传递给left和right。注意:只有一个参数时,参数的类型和括号可以省略,方法体中如果只有一行代码,大括号,封号,return都可以省略(同时省略)注意写完匿名内部类后可以直接通过alt+回车实现lambda表达式。因为lambda只关注方法的参数和方法体,所以可以进行简化。代码更加简洁,开发快,好理解,易于“并发编程”。例2.3:泛型的匿名内部类。例2.3:布尔类型的判断。二,lambda表达式。
2024-10-17 18:35:40
153
原创 log4j日志文件
通过try catch 来查看代码在运行中哪里出错,一般添加在重要值的获取或者是获取参数和返回值的时候,便于查看值是否被正确的接收或者返回。
2024-10-17 16:32:54
203
原创 ssm注意事项
2:通过实体类的get方法,get方法可以写在方法中传参,也可以写在return中返回。下面图片中的page和size参数可以直接通过teacherVo来获取。错误示例(控制层中这样设置会导致参数为null,
2024-10-17 16:06:24
160
原创 ssm分页查询注意事项
teacherVo继承page实体类,不能再用@Param(),否则会导致映射文件查不到。page和size需要设置默认值,防止为null。mybatis核心配置文件。
2024-10-16 16:47:15
243
原创 ssm整合注意事项
通过id查询各科成绩:返回StudentRsp对象,通过studentRsp.scores来实现便利循环,@PathVariable()将studentId的值传进{studentId}中。通过studentVo的get()方法获取page和size,mapper接口中要注意使用@Param()来标注。property属性名,column数据库字段名,id:主键,result:其他。动态sql实现学生信息的查询,以及通过学生姓名和班级名称查询学生详细信息,学生对成绩,一对多,一个学生多个学科成绩。
2024-10-15 21:04:42
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人