![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 51
Enaium
这个作者很懒,什么都没留下…
展开
-
1小时学会SpringBoot3+Vue3前后端分离开发
首先我们需要创建数据库,比如一个图书管理系统,需要有一张图书表,有一些字段,比如标题、作者、创建时间、等等。注解,之后添加一些方法,名称就是根据数据库中字段名称一样,只不过要把蛇形命名改为小驼峰。写完之后,我们按下编译的快捷键(默认是 Ctrl+F9),之后就可以编写接口了。这样我们的后端就写完了,接下来我们开始写前端。,我们使用左侧一栏来选择页面,右侧来展示页面。这样我们的前端就写完了,接下来我们启动项目。的基础知识,环境这里就不多说了,直接开始。之后我们就可以创建实体类了,这里需要先引入。原创 2024-04-25 16:42:09 · 1886 阅读 · 2 评论 -
JDK22新特性Class-File API尝鲜
到目前为止JDK22已经了,不出意外的话,这个就是最终版本了,在本次更新有一个新的的特性也就是,,不过还是在预览版中,不过我们可以尝鲜一下,也就是在未来的版本中可能会被删除或者修改,大家在之前可能使用过ASM等第三方库,但现在JDK是每6个月就会发布一个新的版本,第三方库可能会更新不及时,所以JDK内置了一个,这样就可以更好的支持Java的新特性。本篇文章简单的使用了,之后我会继续深入的了解这个新特性,也会写一些关于的文章。原创 2024-03-04 23:23:52 · 1173 阅读 · 0 评论 -
Gradle极简入门
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,而不是传统的XML。Gradle构建脚本是用Groovy编写的,也可以使用Kotlin编写,两者都是基于JVM的语言。原创 2023-06-02 12:07:02 · 906 阅读 · 0 评论 -
解决IDEA创建或打开项目时下载Gradle
我们在使用IDEA创建或打开一个Gradle项目时,IDEA会下载一个新或旧的Gradle版本,虽然下载很快,但到下次IDEA更新后又会是一个新版的Gradle版本,这样很影响我们的开发效率,所以我做了一个东西,可以让IDEA在创建或打开一个项目时使用自己指定的版本原创 2023-02-03 16:22:09 · 1998 阅读 · 0 评论 -
Netty手写RPC框架
首发于Enaium的个人博客协议就用上篇文章的协议public class Message implements Serializable { private final long order; public Message(long order) { this.order = order; } public long getOrder() { return order; }}只不过Message加了个Order熟悉,原创 2022-03-14 15:19:06 · 1035 阅读 · 0 评论 -
Netty自定义协议
首发于Enaium的个人博客先写一个Messsage类,解码的时候将要把ByteBuf解码为Messagepublic class Message implements Serializable { private final String data; public Message(String data) { this.data = data; } @Override public String toString() { r原创 2022-03-12 19:54:33 · 4268 阅读 · 0 评论 -
Token+Redis登录认证
首发于Enaium的个人博客首先需要了解一下大概的步骤登录生成一个Token存入Redis有效期为30分钟,返回到前端之后前端每次请求,带上登录时返回的Token服务器判断前端带来的Token是否在Redis服务器中存在放行并且重置Token有效期,不存在拦截一个简简单单的登录请求@RequestMapping("/login")@ResponseBodypublic Result<String> login(@RequestBody UserDTO userDTO) {原创 2022-03-10 19:44:11 · 3015 阅读 · 0 评论 -
实现JPanel切换
首发于Enaium的个人博客public static void main(String[] args) { JFrame jFrame = new JFrame("Test"); jFrame.setSize(500, 500); jFrame.setLocationRelativeTo(jFrame.getOwner()); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setLay原创 2022-02-28 17:21:12 · 644 阅读 · 0 评论 -
Netty Http服务器接收请求
首发于Enaium的个人博客public class Server { public static void main(String[] args) { EventLoopGroup eventLoopGroup = new NioEventLoopGroup(); ServerBootstrap serverBootstrap = new ServerBootstrap(); try { serverBootstrap.g原创 2021-07-19 16:03:56 · 447 阅读 · 0 评论 -
Java实现Autowired自动注入
首发于Enaium的个人博客继续使用上个文章的类容器创建一个注解@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Autowired {}遍历所有字段包括私有的private void autowired() { for (Map.Entry<Class<?>, Object> classObjectEntry : classes.entry原创 2021-07-16 21:43:01 · 2045 阅读 · 0 评论 -
Java实现一个类容器
首发于Enaium的个人博客新建2个类public class Test1 {}public class Test2 { public void render() { System.out.println("Test2"); }}public class ClassContainer { private final HashMap<Class<?>, Object> classes = new HashMap<>原创 2021-07-16 21:38:22 · 162 阅读 · 0 评论 -
Java遍历类路径所有类
首发于Enaium的个人博客public class WalkClasspathAllClasses { public static void main(String[] args) throws URISyntaxException, IOException { List<URL> urls = new ArrayList<>(); //获取Classpath if (WalkClasspathAllClasses.cla原创 2021-07-16 13:37:25 · 329 阅读 · 0 评论 -
120行代码手写一个简单的MyBatis实现简单的CRUD
首发于Enaium的个人博客不用XML只用注解首先需要创建6个注解SQL用于输入SQL语句@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface SQL { String[] value();}用来表示这个方法是Update@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @inter原创 2021-04-21 22:14:38 · 151 阅读 · 0 评论 -
详细介绍如何发布到Maven中央仓库
首发于Enaium的个人博客注册账户https://issues.sonatype.org发布问题(创建新的工程)https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134摘要:项目名称Group Id:组名 这里要用自己的域名的话一定要保证有域名的所有全,后面会让你添加dns记录来验证Project URL仓库地址SCM URL git地址之后创建等待回复 会让你添加DNS记录添原创 2021-04-15 12:48:08 · 291 阅读 · 0 评论 -
自写一个EventBus
首发于Enaium的个人博客EventBus,什么是EventBus。EventBus是事件发布-订阅总线,简单来说监听一个事件,一个方法订阅这个事件,如果事件调用,那么订阅了这个事件的方法也会跟着调用,这就是EventBus。创建一个注解,用于订阅事件,名字可以随便起,当然也可以叫Subscribe,我这里叫Event。@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Event {原创 2021-02-23 22:34:23 · 320 阅读 · 1 评论