Top Related Projects
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城、CRM、ERP、AI 大模型等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!
eladmin jpa 版本:项目基于 Spring Boot 2.6.4、 Jpa、 Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中
🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
Quick Overview
The pig-mesh/pig
repository is a lightweight, fast, and flexible web framework for building modern web applications in Go. It provides a simple and intuitive API for handling HTTP requests, routing, middleware, and more, making it a great choice for developers looking to build scalable and efficient web applications.
Pros
- Simplicity: Pig is designed to be easy to use and understand, with a clean and concise API that makes it easy to get started.
- Performance: Pig is built on top of the high-performance
net/http
package, and is optimized for speed and efficiency. - Flexibility: Pig is highly customizable and can be easily extended with middleware and other plugins.
- Scalability: Pig is designed to be scalable and can handle high-traffic web applications with ease.
Cons
- Limited Documentation: While the Pig project has a good amount of documentation, it may not be as comprehensive as some other web frameworks.
- Smaller Community: Pig has a smaller community compared to some of the more popular Go web frameworks, which may make it harder to find support and resources.
- Fewer Features: Pig is a relatively lightweight framework, which means it may not have as many built-in features as some of the more feature-rich web frameworks.
- Lack of Widespread Adoption: Pig is not as widely used as some of the more popular Go web frameworks, which may make it harder to find developers who are familiar with the project.
Code Examples
Here are a few examples of how to use Pig in your Go web applications:
- Basic HTTP Handler:
package main
import (
"fmt"
"net/http"
"github.com/pig-mesh/pig"
)
func main() {
r := pig.New()
r.Get("/", func(c *pig.Context) error {
_, err := fmt.Fprintf(c.Writer, "Hello, World!")
return err
})
http.ListenAndServe(":8080", r)
}
- Routing and Parameters:
package main
import (
"fmt"
"net/http"
"github.com/pig-mesh/pig"
)
func main() {
r := pig.New()
r.Get("/users/:id", func(c *pig.Context) error {
id := c.Param("id")
_, err := fmt.Fprintf(c.Writer, "User ID: %s", id)
return err
})
http.ListenAndServe(":8080", r)
}
- Middleware:
package main
import (
"fmt"
"net/http"
"github.com/pig-mesh/pig"
)
func main() {
r := pig.New()
r.Use(func(next pig.HandlerFunc) pig.HandlerFunc {
return func(c *pig.Context) error {
fmt.Println("Before request")
err := next(c)
fmt.Println("After request")
return err
}
})
r.Get("/", func(c *pig.Context) error {
_, err := fmt.Fprintf(c.Writer, "Hello, World!")
return err
})
http.ListenAndServe(":8080", r)
}
Getting Started
To get started with Pig, you can follow these steps:
- Install Go on your system if you haven't already.
- Create a new Go module for your project:
go mod init your-project
- Install the Pig package:
go get github.com/pig-mesh/pig
- Create a new file (e.g.,
main.go
) and add the following code:
package main
import (
"fmt"
"net/http"
"github.com/pig-mesh/pig"
)
func main() {
r := pig.New()
r.Get("/", func(c *pig.Context) error {
_, err := fmt.Fprintf(c.Writer, "Hello, Worl
Competitor Comparisons
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
Pros of spring-cloud-alibaba
- More comprehensive ecosystem with a wider range of components for microservices
- Stronger community support and regular updates from Alibaba
- Better integration with Alibaba Cloud services
Cons of spring-cloud-alibaba
- Steeper learning curve due to its extensive feature set
- Potentially heavier resource consumption for smaller projects
- Some components may be more tailored for Alibaba Cloud, limiting flexibility
Code Comparison
spring-cloud-alibaba:
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
pig:
@SpringBootApplication
@EnablePigFeignClients
@EnablePigResourceServer
public class PigAdminApplication {
public static void main(String[] args) {
SpringApplication.run(PigAdminApplication.class, args);
}
}
Both projects use Spring Boot annotations, but spring-cloud-alibaba focuses on service discovery, while pig includes custom annotations for Feign clients and resource server configuration.
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统 包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Pros of mall
- More comprehensive e-commerce solution with front-end and back-end components
- Extensive documentation and learning resources for developers
- Larger community and more frequent updates
Cons of mall
- Steeper learning curve due to its complexity
- May be overkill for smaller projects or simpler e-commerce needs
- Potentially higher resource requirements for deployment
Code Comparison
mall (Java):
@ApiOperation("Add product to cart")
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public CommonResult add(@RequestBody OmsCartItem cartItem) {
int count = cartItemService.add(cartItem);
if (count > 0) {
return CommonResult.success(count);
}
return CommonResult.failed();
}
pig (Java):
@Inner(false)
@GetMapping("/info/{username}")
public R<UserInfo> info(@PathVariable String username) {
SysUser user = sysUserService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername, username));
if (user == null) {
return R.failed(String.format("用户信息为空 %s", username));
}
return R.ok(sysUserService.getUserInfo(user));
}
Both projects use Spring Boot and similar annotation-based approaches, but mall focuses on e-commerce functionality while pig emphasizes microservices and security features.
🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理 系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城、CRM、ERP、AI 大模型等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!
Pros of ruoyi-vue-pro
- More comprehensive documentation and tutorials
- Larger community and more frequent updates
- Extensive integration with popular third-party services
Cons of ruoyi-vue-pro
- Steeper learning curve due to its extensive features
- Potentially heavier resource consumption
- May be overly complex for smaller projects
Code Comparison
ruoyi-vue-pro:
@PreAuthorize("@ss.hasPermission('system:user:list')")
@GetMapping("/page")
public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) {
PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO);
return success(UserConvert.INSTANCE.convertPage(pageResult));
}
pig:
@GetMapping("/page")
public R getUserPage(Page page, UserDTO userDTO) {
return R.ok(userService.getUserWithRolePage(page, userDTO));
}
The ruoyi-vue-pro example shows more detailed permission handling and request validation, while pig's code is more concise but may require additional security measures elsewhere in the application.
eladmin jpa 版本:项目基于 Spring Boot 2.6.4、 Jpa、 Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式 , 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由
Pros of eladmin
- More comprehensive documentation and detailed user guide
- Extensive built-in components and modules for rapid development
- Active community with frequent updates and bug fixes
Cons of eladmin
- Steeper learning curve due to its extensive feature set
- Potentially heavier resource usage for smaller projects
- Less flexibility for customization compared to Pig's modular approach
Code Comparison
eladmin (Entity class example):
@Entity
@Data
@Table(name="sys_user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
}
Pig (Entity class example):
@Data
@TableName("sys_user")
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ASSIGN_ID)
private Long userId;
private String username;
private String email;
}
Both projects use similar annotations for entity classes, but Pig uses MyBatis-Plus annotations while eladmin uses JPA annotations. eladmin's approach may be more familiar to developers with a Spring Data background, while Pig's approach aligns with MyBatis-Plus conventions.
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引 入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中
Pros of SpringCloud
- More comprehensive microservices architecture demonstration
- Includes detailed documentation and diagrams for system design
- Implements a wider range of Spring Cloud components
Cons of SpringCloud
- Less frequent updates and maintenance compared to Pig
- May be more complex for beginners to understand and implement
- Lacks some modern features and integrations present in Pig
Code Comparison
SpringCloud (auth-server module):
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private UserDetailsService userDetailsService;
Pig (auth module):
@Configuration
@EnableAuthorizationServer
@RequiredArgsConstructor
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
private final DataSource dataSource;
private final PigUserDetailsService pigUserDetailsService;
Both projects use Spring Cloud for microservices architecture, but Pig demonstrates a more modern approach with Lombok annotations and constructor injection. SpringCloud provides a more traditional setup, which may be easier for developers familiar with older Spring versions. Pig also includes additional security features and integrations with tools like Swagger and MyBatis-Plus, making it more feature-rich for enterprise applications.
🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成 器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
Pros of JeecgBoot
- More comprehensive documentation and tutorials
- Stronger focus on low-code development and code generation
- Larger community and more frequent updates
Cons of JeecgBoot
- Steeper learning curve due to more complex architecture
- Potentially slower performance in some scenarios
- Less emphasis on microservices architecture
Code Comparison
JeecgBoot:
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
@GetMapping("/hello")
public Result<String> hello() {
return Result.OK("Hello JeecgBoot!");
}
}
Pig:
@RestController
@RequestMapping("/test")
@RequiredArgsConstructor
public class TestController {
@GetMapping("/hello")
public R<String> hello() {
return R.ok("Hello Pig!");
}
}
Both projects use similar Spring Boot annotations and controller structures. JeecgBoot uses a custom Result
class, while Pig uses R
for wrapping responses. Pig also utilizes Lombok's @RequiredArgsConstructor
for dependency injection, whereas JeecgBoot uses @Slf4j
for logging.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ç³»ç»è¯´æ
- åºäº Spring Cloud ãSpring Bootã OAuth2 ç RBAC **ä¼ä¸å¿«éå¼åå¹³å°**ï¼ åæ¶æ¯æå¾®æå¡æ¶æååä½æ¶æ
- æä¾å¯¹ Spring Authorization Server ç产级å®è·µï¼æ¯æå¤ç§å®å ¨ææ模å¼
- æä¾å¯¹å¸¸è§å®¹å¨åæ¹æ¡æ¯æ KubernetesãRancher2 ãKubesphereãEDASãSAE æ¯æ
åæ¯è¯´æ
- jdk17: java17/21 + springboot 3.3 + springcloud 2023
- master: java8 + springboot 2.7 + springcloud 2021
ææ¡£è§é¢
å ¶ä»äº§å
-
ðð» PIGX å¨çº¿ä½éª
-
ðð» èªç BPMNå·¥ä½æµå¼æ
-
ðð» 大模å RAG ç¥è¯åº
微信群 [ç¦å¹¿å]
å¿«éå¼å§
æ ¸å¿ä¾èµ
ä¾èµ | çæ¬ |
---|---|
Spring Boot | 3.3.2 |
Spring Cloud | 2023.0.3 |
Spring Cloud Alibaba | 2023.0.1.2 |
Spring Authorization Server | 1.3.1 |
Mybatis Plus | 3.5.7 |
Vue | 3.4 |
Element Plus | 2.7 |
模å说æ
pig-ui -- https://gitee.com/log4j/pig-ui
pig
âââ pig-boot -- åä½æ¨¡å¼å¯å¨å¨[9999]
âââ pig-auth -- æææå¡æä¾[3000]
âââ pig-common -- ç³»ç»å
Œ
±æ¨¡å
âââ pig-common-bom -- å
¨å±ä¾èµç®¡çæ§å¶
âââ pig-common-core -- å
Œ
±å·¥å
·ç±»æ ¸å¿å
âââ pig-common-datasource -- å¨ææ°æ®æºå
âââ pig-common-log -- æ¥å¿æå¡
âââ pig-common-oss -- æ件ä¸ä¼ å·¥å
·ç±»
âââ pig-common-mybatis -- mybatis æ©å±å°è£
âââ pig-common-seata -- åå¸å¼äºå¡
âââ pig-common-security -- å®å
¨å·¥å
·ç±»
âââ pig-common-swagger -- æ¥å£ææ¡£
âââ pig-common-feign -- feign æ©å±å°è£
âââ pig-common-xss -- xss å®å
¨å°è£
âââ pig-register -- Nacos Server[8848]
âââ pig-gateway -- Spring Cloud Gatewayç½å
³[9999]
âââ pig-upms -- éç¨ç¨æ·æé管ç模å
âââ pig-upms-api -- éç¨ç¨æ·æé管çç³»ç»å
Œ
±api模å
âââ pig-upms-biz -- éç¨ç¨æ·æé管çç³»ç»ä¸å¡å¤ç模å[4000]
âââ pig-visual
âââ pig-monitor -- æå¡çæ§ [5001]
âââ pig-codegen -- å¾å½¢å代ç çæ [5002]
âââ pig-quartz -- å®æ¶ä»»å¡ç®¡çå° [5007]
æ¬å°å¼å è¿è¡
pig æä¾äºè¯¦ç»çé¨ç½²ææ¡£ wiki.pig4cloud.comï¼å æ¬å¼åç¯å¢å®è£ ãæå¡ç«¯ä»£ç è¿è¡ãå端代ç è¿è¡çã
请å¡å¿ **å®å ¨æç §**ææ¡£é¨ç½²è¿è¡ç« è è¿è¡æä½ï¼åå°è¸©å弯路ï¼ï¼
Docker è¿è¡
# ä¸è½½å¹¶è¿è¡æå¡ç«¯ä»£ç
git clone https://gitee.com/log4j/pig.git -b jdk17
cd pig && mvn clean install && docker compose up -d
# ä¸è½½å¹¶è¿è¡å端UI
git clone https://gitee.com/log4j/pig-ui.git
cd pig-ui && npm install --registry=https://registry.npmmirror.com
npm install && npm run build:docker && cd docker && docker compose up -d
å è´¹å ¬å¼è¯¾
å¼æºå ±å»º
å¼æºåè®®
pig å¼æºè½¯ä»¶éµå¾ª Apache 2.0 åè®®ã å 许åä¸ä½¿ç¨ï¼ä½å¡å¿ ä¿çç±»ä½è ãCopyright ä¿¡æ¯ã
å ¶ä»è¯´æ
-
欢è¿æ交 PRï¼æ³¨æ对åºæ交对åº
dev
åæ¯ ä»£ç è§è spring-javaformat代ç è§è说æ
- ç±äº spring-javaformat 强å¶ææ代ç æç §æå®æ ¼å¼æçï¼æªææ¤è¦æ±æ交ç代ç å°ä¸è½éè¿å并ï¼æå ï¼
- å¦æä½¿ç¨ IntelliJ IDEA å¼åï¼è¯·å®è£ èªå¨æ ¼å¼å软件 spring-javaformat-intellij-idea-plugin
- å
¶ä»å¼åå·¥å
·ï¼è¯·åè
spring-javaformat
说æï¼æ
æ交代ç å
å¨é¡¹ç®æ ¹ç®å½è¿è¡ä¸åå½ä»¤ï¼éè¦å¼åè çµèæ¯æmvn
å½ä»¤ï¼è¿è¡ä»£ç æ ¼å¼åmvn spring-javaformat:apply
-
欢è¿æ交 issueï¼è¯·åæ¸ æ¥éå°é®é¢çåå ãå¼åç¯å¢ãå¤æ¾æ¥éª¤ã
Top Related Projects
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序,支持 RBAC 动态权限、数据权限、SaaS 多租户、Flowable 工作流、三方登录、支付、短信、商城、CRM、ERP、AI 大模型等功能。你的 ⭐️ Star ⭐️,是作者生发的动力!
eladmin jpa 版本:项目基于 Spring Boot 2.6.4、 Jpa、 Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中
🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot