1.JDK编译时注解处理器结合Javapoet动态生成模板化Java源文件
2.求shop++的源代码
3.SpringBoot从入门到精通(四)SpringBoot接口权限控制
4.十几套Java实战项目分享,拿去当毕业设计、课程设计简直太爽了(文档、源码齐全)
JDK编译时注解处理器结合Javapoet动态生成模板化Java源文件
面对繁复的业务代码和重复劳动,我们一直在寻求更高效的解决方案。Lombok的网页f12禁止修改源码出现,通过其注解如@Data,能自动生成getter、setter等方法,简化了代码编写。然而,对于自定义对象和集合类型,如JPA中需要扩展AttributeConverter的情况,如何减少手动编写转换类的繁琐呢?
答案在于利用Java的编译时注解处理器(Annotation Processing Tool,APT)和JavaPoet源代码生成器。APT在编译阶段处理注解,通过动态生成.java源代码,能解决重复代码问题。JavaPoet则提供了优雅地生成代码的功能,让代码生成变得轻松。
具体步骤如下:首先,理解AttributeConverter的工作原理,它在Entity和数据库之间建立数据关联。我们创建一个通用的金融直销源码Converter基类,如AbstractJsonConverter,用于处理类型转换。接着,定义一个自定义注解JsonAutoConverter,标记需要生成Converter的类,由AnnotationProcessor扫描并处理,生成相应的源代码,如OrderNoticeEventConverter。
通过执行编译命令,我们能在生成的源文件中看到JavaPoet生成的Converter类,它继承自AbstractJsonConverter,实现了特定类型的转换。这个例子展示了如何利用JDK编译时注解处理器结合Javapoet动态生成模板化的Java源文件,以减少重复工作,提升编码效率。
开发中的"小技巧"往往隐藏在深处,只要我们愿意探索,就能发现并应用它们,打开新的编程世界。源码地址:/zhucan/extension-spring-boot-starter/tree/master/jpa-conversion,欢迎有兴趣的朋友查看和学习。
求shop++的源代码
主要库
spring-aop-4.0.9.RELEASE
spring-beans-4.0.9.RELEASE
spring-context-4.0.9.RELEASE
spring-context-support-4.0.9.RELEASE
spring-core-4.0.9.RELEASE
spring-expression-4.0.9.RELEASE
spring-jdbc-4.0.9.RELEASE
spring-orm-4.0.9.RELEASE
spring-test-4.0.9.RELEASE
spring-tx-4.0.9.RELEASE
spring-web-4.0.9.RELEASE
spring-webmvc-4.0.9.RELEASE
hibernate-core-4.3.9.Final
hibernate-jpa-2.1-api-1.0.0.Final
hibernate-entitymanager-4.3.9.Final
hibernate-validator-5.1.3.Final
hibernate-search-orm-4.5.3.Final
lucene-core-3.6.2
freemarker-2.3.
ehcache-core-2.6.
ehcache-web-2.0.4
shiro-core-1.2.3
shiro-web-1.2.3
c3p0-0.9.2.1
commons-lang-2.6
commons-beanutils-1.9.2
commons-collections-3.2.1
commons-io-2.4
commons-net-3.3
commons-fileupload-1.3.1
commons-codec-1.
commons-email-1.3.3
commons-compress-1.9
junit-4.
httpclient-4.3.5
httpcore-4.3.2
slf4j-api-1.7.7
jcl-over-slf4j-1.7.7
logback-core-1.1.2
logback-classic-1.1.2
dom4j-1.6.1
jackson-core-2.4.3
jackson-databind-2.4.3
jackson-annotations-2.4.3
IKAnalyzer_u6
SpringBoot从入门到精通(四)SpringBoot接口权限控制
欢迎大家点点关注,可以最先收到定期更新的hmacd指标源码 SpringBoot 以及 Java 编程相关知识文章。
这几天突然有个想法,帮助那些刚毕业的大学生以及新入门的朋友来学习SpringBoot,写一系列的SpringBoot,今天先写第四篇,SpringBoot接口权限控制,分别是 SpringBoot2.X 和 SpringBoot3.X 的不同版本的配置。
一、pom文件增加引用
(一)SpringBoot2.X版本的 SpringSecurity 配置
在pom.xml文件中的之间增加以下内容,引入SpringBoot的security来控制接口访问权限
保存后弹出,点击Import Changes引入新的jar包内容
在 resources 目录中 application.yaml文件
(二)SpringBoot 3.X版本的 SpringSecurity 配置
由于这次是独立建立的 module ,与原有项目不依赖,因此直接配置独立的 pom.xml
保存后弹出,点击Import Changes引入新的jar包内容
在 resources 目录增加application.yaml文件
二、增加SpringSecurity配置类
(一)SpringBoot2.X版本的 SpringSecurity 代码配置
新增WebSecurityConfig.java类,配置basicauth账号密码aaa/bbb,/helloWorld接口不需要权限即可访问,/helloWorld1接口需要通过basicauth权限验证
(二)SpringBoot 3.X版本的 SpringSecurity 代码配置
新增SecurityConfig.java类,配置basicauth账号密码aaa/bbb,/helloWorld接口不需要权限即可访问,其他接口均需要通过basicauth权限验证
增加DemoController.java测试类,其中可以通过注解@PreAuthorize("hasAuthority('ADMIN')") 来配置权限验证,和WebSecurityConfig.java的配置效果相同,可以只配置一种方式即可,修改源码文字不配置的也就是不验证权限或者以WebSecurityConfig.java的配置为准的意思。
三、通过postman测试接口权限
(一)SpringBoot2.X版本的 SpringSecurity 测试
重启服务完毕后,通过postman调用接口http://localhost:/hello-world-new/helloWorld,不需要basicauth即可访问
通过postman调用接口http://localhost:/hello-world-new/student?id=1接口,无basicauth情况返回
通过postman调用接口http://localhost:/hello-world-new/student?id=1接口,有basicauth情况正常返回
通过postman的POST方式调用接口http://localhost:/hello-world-new/student接口,无basicauth情况返回
通过postman的POST方式调用接口http://localhost:/hello-world-new/student接口,有basicauth情况正常返回
(二)SpringBoot 3.X版本的 SpringSecurity 测试
重启服务完毕后,通过postman调用接口http://localhost:/test-spring-security6/helloWorld,不需要basicauth即可访问
通过postman调用接口http://localhost:/test-spring-security6/helloWorld1接口,无basicauth情况返回
通过postman调用接口http://localhost:/test-spring-security6/helloWorld1接口,basicauth用户名 aaa,密码 bbb 的情况下成功返回
四、总结
以上就是咱们常用的SpringBoot2.X 和 SpringBoot3.X项目接口权限控制,通过antMatchers或者authorizeHttpRequests来控制不同接口允许不同的权限来访问。
注意 SpringBoot3.X 需要JDK 以上版本才可以。
谢各位的阅读,谢谢您动动手指点击下[公式],万分感谢各位。另外以下是我之前写过的文章,感兴趣的可以点进去继续阅读。
历史文章
最重要的影院源码 诱导几种设计模式-设计模式这一篇就够了-看多了就是浪费
SpringBoot从入门到精通(一)搭建SpringBoot项目
SpringBoot从入门到精通(二)SpringBoot服务基本配置
SpringBoot从入门到精通(三)SpringBoot常见Rest接口
SpringBoot从入门到精通(四)SpringBoot接口权限控制
SpringBoot从入门到精通(五)SpringBoot连接数据库
SpringBoot从入门到精通(六)SpringBoot验证validation
SpringBoot从入门到精通(七)SpringBoot集成MyBatis
SpringBoot从入门到精通(八)SpringBoot集成JPA
SpringBoot从入门到精通(九)SpringBoot集成RestTemplate请求接口
SpringBoot从入门到精通(十)SpringBoot集成ehcache内存缓存
SpringBoot从入门到精通(十一)SpringBoot集成RabbitMQ
SpringBoot从入门到精通(十二)SpringBoot集成Kafka
SpringBoot从入门到精通(十三)SpringBoot2集成Swagger3
SpringBoot从入门到精通(十四)SpringBoot读取配置文件
SpringBoot从入门到精通(十五)SpringBoot配置Logback日志输出格式
SpringBoot从入门到精通(十六)SpringBoot AOP
SpringBoot从入门到精通(十七)SpringBoot Actuator
SpringBoot从入门到精通(十八)SpringBoot Test
SpringBoot从入门到精通(十九)SpringBoot Docker
SpringBoot从入门到精通(二十)SpringBoot MongoDB
SpringBoot从入门到精通(二十一)SpringBoot3 集成Swagger3
SpringBoot从入门到精通(二十二)SpringBoot3集成Keycloak单点登录
SpringBoot从入门到精通(二十三)Github Actions一键部署到服务器
ScriptRunner执行Oracle SQL脚本
SpringBoot集成Logback遇到的问题
SpringBoot基础之Spring Actuator
SpringBoot基础之Spring Expression Language(Spring表达语言SpEL)
SpringBoot基础之Spring Data Jpa
SpringBoot基础之AOP&AspectJ
SpringBoot基础之JDBCTemplate
Spring Cloud基础之Discovery Service服务发现简单搭建
Spring Cloud基础之Intelligent Routing智能路由
Spring Cloud基础之Config Server配置中心简单搭建
Spring Cloud基础之Load Balancing负载均衡
Spring Cloud基础之Hystrix熔断器
十几套Java实战项目分享,拿去当毕业设计、课程设计简直太爽了(文档、源码齐全)
教务管理软件设计与实现
针对高校教务管理复杂性,本系统基于B/S结构,运用MVC模式,集成Spring、SpringMVC、MyBatis等技术,实现课程、教师、学生、院系、公告、个人信息等管理功能,支持高校数字化校园建设。
系统开发工具:运行环境、功能概述、管理员、教师、学生操作等
Java+Jsp+MySQL高校选课系统设计与实现
本系统在J2EE平台下开发,采用B/S模式、MySQL数据库和Tomcat服务器,提供简洁友好的界面、易用的操作,稳定可靠运行,便于维护和扩展,满足高校选课需求。
开发工具:运行环境、功能概述、系统管理员、普通读者操作等
SpringBoot+MySQL+Html图书管理系统设计与实现
通过计算机实现图书管理,系统提供图书、借阅、用户、公告、个人中心等功能,界面友好、操作容易、数据完整性和安全性符合高校要求。
开发工具:功能概述、系统管理员、普通读者操作等
基于web的图书管理系统设计与实现
系统采用Java+Servlet+Jsp方式,实现B/S模式的图书管理系统,包括登录、首页、图书管理、借阅信息、公告管理等功能。
功能展示:登录页面、首页、图书管理、借阅信息、公告管理等
JavaWeb宿舍管理系统
宿舍管理系统以计算机和互联网为基础,实现宿舍管理自动化,降低难度,提高效率,适合高校学生毕业设计。
技术选型:用户分析、源码下载、功能展示、登录、首页、宿舍管理员、学生操作等
基于web的机票管理系统设计与实现(一)
系统使用Eclipse、Redis、MySQL、SSM框架、支付宝沙箱支付,实现用户注册、机票查询、预订、广告展示等功能,为乘客提供便利。
开发工具:系统功能分析、源码下载、登录、首页、航班信息管理、订单信息管理等
基于SSH框架的人力资源管理系统设计与实现
人力资源管理系统基于SSH框架,支持基础性、例行性、战略性、开拓性工作,提高工作效率,利用历史信息辅助决策。
技术选型:Spring+SpringMVC+Hibernate+MySql、运行环境、功能概述等
基于java的企业进销存管理系统设计与实现
进销存管理系统是一个集成本地与网络的自动化系统,完成进货、销售、库存管理,提高企业效率。
运行环境、功能概述等
基于SSM框架的JavaWeb通用权限管理系统
通用权限管理系统基于SSM框架,兼容多种技术,提供权限设计模板,简化实际应用开发。
技术选型、环境开发、主要功能等
基于ssm的客户管理系统
客户管理系统基于SSM框架,包含字典、用户、角色、权限、部门、客户信息管理等功能,支持数据操作和状态跟踪。
技术选型、运行环境、功能概述等
仓库ERP管理系统(springboot)设计与实现
系统基于springboot、mybatis、easyui框架,实现仓库管理、订单处理等功能,提高供应链效率。
技术选型、运行环境、功能模块等
Java GUI 图书管理系统设计与开发
图书管理系统采用java awt实现,提供图书维护、读者维护、借阅管理、查询管理、系统管理等全面功能。
技术、功能概述等
JavaWeb 图书管理系统设计与开发
系统基于springboot、jpa、mybatis、springsecurity、javaex框架,提供图书管理、借阅管理、读者管理、用户中心等功能。
技术选型、运行环境、功能介绍等