eladmin
eladmin jpa 版本:项目基于 Spring Boot 2.6.4、 Jpa、 Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码 ,支持动态路由
Top Related Projects
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
🎉 vue admin,vue3 admin,vue3.0 admin,vue后台管理,vue-admin,vue3.0-admin,admin,vue-admin,vue-element-admin,ant-design,vab admin pro,vab admin plus,vue admin plus,vue admin pro
A modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!
Vue3、Element Plus、typescript后台管理系统
Vue 2.0 admin management system template based on iView
mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。
Quick Overview
eladmin is a comprehensive backend management system based on Spring Boot 2.1 and Vue. It provides a robust set of features for rapid development of enterprise applications, including user management, role management, menu management, and various system monitoring tools.
Pros
- Comprehensive set of features for enterprise application development
- Built on modern technologies (Spring Boot 2.1 and Vue)
- Includes detailed documentation and deployment guides
- Active community and regular updates
Cons
- Primarily documented in Chinese, which may be a barrier for non-Chinese speakers
- Steep learning curve for developers new to Spring Boot or Vue
- Some users report issues with complex deployments
Code Examples
// Example of using the @Query annotation for custom queries
@Query(value = "SELECT * FROM user WHERE email = ?1", nativeQuery = true)
User findByEmail(String email);
// Example of using the @Log annotation for logging
@Log("Delete user")
@DeleteMapping("/{id}")
@PreAuthorize("@el.check('user:del')")
public ResponseEntity<Object> delete(@PathVariable Long id) {
userService.delete(id);
return new ResponseEntity<>(HttpStatus.OK);
}
// Example of using the @DataPermission annotation for data access control
@DataPermission(fieldName = "dept_id")
public List<User> queryAll(UserQueryCriteria criteria, Pageable pageable) {
return userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable).getContent();
}
Getting Started
-
Clone the repository:
git clone https://github.com/elunez/eladmin.git
-
Configure the database in
application.yml
:spring: datasource: url: jdbc:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: root password: 123456
-
Run the backend:
cd eladmin-system mvn spring-boot:run
-
Run the frontend:
cd ../eladmin-web npm install npm run dev
-
Access the application at
http://localhost:8013
Competitor Comparisons
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
Pros of vue-element-admin
- More comprehensive and feature-rich, offering a wider range of pre-built components and layouts
- Larger community and more frequent updates, resulting in better long-term support and maintenance
- Extensive documentation and examples, making it easier for developers to get started and implement complex features
Cons of vue-element-admin
- Steeper learning curve due to its complexity and extensive feature set
- Potentially heavier and slower performance compared to eladmin's lightweight approach
- May require more customization and code removal for simpler projects
Code Comparison
vue-element-admin (Vue.js):
import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/layout'
Vue.use(Router)
export const constantRoutes = [
{
path: '/login',
component: () => import('@/views/login/index'),
hidden: true
}
]
eladmin (Java Spring Boot):
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping
public ResponseEntity<Object> getUsers() {
return new ResponseEntity<>(userService.queryAll(), HttpStatus.OK);
}
}
This comparison highlights the different approaches and technologies used by these projects. vue-element-admin focuses on front-end development with Vue.js, while eladmin is a full-stack solution using Java Spring Boot for the backend and Vue.js for the frontend.
🎉 vue admin,vue3 admin,vue3.0 admin,vue后台管理,vue-admin,vue3.0-admin,admin,vue-admin,vue-element-admin,ant-design,vab admin pro,vab admin plus,vue admin plus,vue admin pro
Pros of vue-admin-better
- More active development with frequent updates and contributions
- Extensive documentation and examples for easier implementation
- Larger community support and user base
Cons of vue-admin-better
- Steeper learning curve due to more complex features
- Potentially heavier resource usage for smaller projects
- Less focus on backend integration compared to eladmin
Code Comparison
eladmin (Java):
@Data
@Entity
@Table(name="sys_user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long id;
vue-admin-better (JavaScript):
export default {
name: 'User',
data() {
return {
form: {
username: '',
password: '',
},
}
},
The code snippets show different approaches to user management. eladmin uses Java with JPA annotations for database mapping, while vue-admin-better focuses on frontend Vue.js components for user interaction. This reflects the different emphases of the two projects, with eladmin providing a more comprehensive backend solution and vue-admin-better concentrating on the frontend user experience.
A modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!
Pros of vue-vben-admin
- More comprehensive and feature-rich admin template
- Better TypeScript support and integration
- More active development and frequent updates
Cons of vue-vben-admin
- Steeper learning curve due to its complexity
- Potentially overkill for smaller projects
- Larger bundle size and potentially slower initial load times
Code Comparison
eladmin (Java):
@Data
@Entity
@Table(name="sys_user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long id;
private String username;
}
vue-vben-admin (TypeScript):
export interface UserInfo {
userId: string | number;
username: string;
realName: string;
avatar: string;
desc?: string;
homePath?: string;
roles: RoleInfo[];
}
The code snippets show different approaches to defining user entities. eladmin uses Java with JPA annotations for database mapping, while vue-vben-admin uses TypeScript interfaces for type definitions. This reflects the different tech stacks and focuses of the two projects.
Vue3、Element Plus、typescript后台管理系统
Pros of vue-manage-system
- Simpler and more lightweight, making it easier to learn and implement
- Focuses solely on the frontend, allowing for more flexibility in backend choices
- Provides a clean and modern UI design out of the box
Cons of vue-manage-system
- Less comprehensive than eladmin, which offers both frontend and backend solutions
- Fewer built-in features and integrations compared to eladmin
- May require more custom development for complex enterprise applications
Code Comparison
vue-manage-system (Vue.js component):
<template>
<div class="sidebar">
<el-menu class="sidebar-el-menu" :default-active="onRoutes" :collapse="collapse" background-color="#324157"
text-color="#bfcbd9" active-text-color="#20a0ff" unique-opened router>
<template v-for="item in items">
<template v-if="item.subs">
<el-submenu :index="item.index" :key="item.index">
<template #title>
<i :class="item.icon"></i><span>{{ item.title }}</span>
</template>
<template v-for="subItem in item.subs">
<el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
<template #title>{{ subItem.title }}</template>
<el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">
{{ threeItem.title }}
</el-menu-item>
</el-submenu>
<el-menu-item v-else :index="subItem.index" :key="subItem.index">
{{ subItem.title }}
</el-menu-item>
</template>
</el-submenu>
</template>
<template v-else>
<el-menu-item :index="item.index" :key="item.index">
<i :class="item.icon"></i><span>{{ item.title }}</span>
</el-menu-item>
</template>
</template>
</el-menu>
</div>
</template>
eladmin (Java backend code):
@Log
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
private final DataScope dataScope;
private final DeptService deptService;
private final RoleService roleService;
private final VerificationCodeService verificationCodeService;
@ApiOperation("Query user")
@GetMapping
@PreAuthorize("@el.check('user:list')")
public ResponseEntity<Object> query(UserQueryCriteria criteria, Pageable pageable){
if (!ObjectUtils.isEmpty(criteria.getDeptId())) {
criteria.getDeptIds().add(criteria.getDeptId());
criteria.getDeptIds().addAll(deptService.getDeptChildren(criteria.getDeptId(),
criteria.getDeptIds()));
}
// Data permission
List<Long> dataScopes = dataScope.getDeptIds(userService.findByName(SecurityUtils.getCurrentUsername()));
// Criteria add data permissions
if (!CollectionUtils.isEmpty(criteria.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)){
// Take the intersection
criteria.getDeptIds().retainAll(dataScopes);
if(!CollectionUtil.isEmpty(criteria.getDeptIds())){
return new ResponseEntity<>(userService.queryAll(criteria,pageable),HttpStatus.OK);
}
} else {
// If the user's data permissions are empty, return an empty list
if (CollectionUtils.isEmpty(dataScopes)) {
return new ResponseEntity<>(PageUtil.toPage(null,0),HttpStatus.OK
Vue 2.0 admin management system template based on iView
Pros of iview-admin
- Built on Vue.js and iView UI components, offering a modern and responsive interface
- Extensive documentation and examples, making it easier for developers to get started
- Includes a variety of pre-built components and layouts for rapid development
Cons of iview-admin
- Less focus on backend integration compared to eladmin
- May require more customization for specific business requirements
- Limited built-in security features compared to eladmin's Spring Security integration
Code Comparison
iview-admin (Vue.js):
<template>
<div>
<Table :columns="columns" :data="data"></Table>
</div>
</template>
<script>
export default {
// Component logic
}
</script>
eladmin (Java):
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping
public ResponseEntity<List<User>> getUsers() {
// Controller logic
}
}
The code snippets highlight the different approaches: iview-admin focuses on frontend components, while eladmin emphasizes backend API development.
mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。
Pros of mall-admin-web
- More comprehensive e-commerce functionality, including order management and product catalog
- Larger community and more frequent updates
- Detailed documentation and deployment guides
Cons of mall-admin-web
- Steeper learning curve due to its complexity
- Potentially overkill for smaller projects or simpler admin needs
- Less flexible for non-e-commerce applications
Code Comparison
mall-admin-web (Vue.js component):
<template>
<div class="app-container">
<el-card class="filter-container" shadow="never">
<div>
<i class="el-icon-search"></i>
<span>Filter Search</span>
<el-button style="float: right" type="primary" @click="handleSearchList()">
Search
</el-button>
</div>
<!-- ... more filter options ... -->
</el-card>
</div>
</template>
eladmin (Vue.js component):
<template>
<div class="app-container">
<eForm ref="form" :is-add="isAdd" @close="close" @success="getList" />
<crud
ref="crud"
:permission="permission"
:table="table"
:crud-method="crudMethod"
@toQuery="toQuery"
/>
</div>
</template>
Both projects use Vue.js for the frontend, but mall-admin-web appears to use more native Element UI components, while eladmin utilizes custom CRUD components for a more abstracted approach to data management.
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
ELADMIN åå°ç®¡çç³»ç»
项ç®ç®ä»
ä¸ä¸ªåºäº Spring Boot 2.6.4 ã Spring Boot Jpaã JWTãSpring SecurityãRedisãVueçåå端å离çåå°ç®¡çç³»ç»
ç°å·²åå¸åºäº mybatis-plus çæ¬ï¼é¡¹ç®å°åï¼https://github.com/elunez/eladmin-mpãhttps://gitee.com/elunez/eladmin-mpã
å¼åææ¡£ï¼ https://eladmin.vip
ä½éªå°åï¼ https://eladmin.vip/demo
è´¦å·å¯ç ï¼ admin / 123456
项ç®æºç
å端æºç | å端æºç | |
---|---|---|
github | https://github.com/elunez/eladmin | https://github.com/elunez/eladmin-web |
ç äº | https://gitee.com/elunez/eladmin | https://gitee.com/elunez/eladmin-web |
èµå©å | Sponsor
主è¦ç¹æ§
- 使ç¨ææ°ææ¯æ ï¼ç¤¾åºèµæºä¸°å¯ã
- é«æçå¼åï¼ä»£ç çæå¨å¯ä¸é®çæåå端代ç
- æ¯ææ°æ®åå ¸ï¼å¯æ¹ä¾¿å°å¯¹ä¸äºç¶æè¿è¡ç®¡ç
- æ¯ææ¥å£éæµï¼é¿å æ¶æ请æ±å¯¼è´æå¡å±ååè¿å¤§
- æ¯ææ¥å£çº§å«çåè½æéä¸æ°æ®æéï¼å¯èªå®ä¹æä½
- èªå®ä¹æé注解ä¸å¿åæ¥å£æ³¨è§£ï¼å¯å¿«é对æ¥å£æ¦æªä¸æ¾è¡
- 对ä¸äºå¸¸ç¨å°å端ç»ä»¶å°è£ ï¼è¡¨æ ¼æ°æ®è¯·æ±ãæ°æ®åå ¸ç
- åå端ç»ä¸å¼å¸¸æ¦æªå¤çï¼ç»ä¸è¾åºå¼å¸¸ï¼é¿å ç¹ççå¤æ
- æ¯æå¨çº¿ç¨æ·ç®¡çä¸æå¡å¨æ§è½çæ§ï¼æ¯æéå¶åç¨æ·ç»å½
- æ¯æè¿ç»´ç®¡çï¼å¯æ¹ä¾¿å°å¯¹è¿ç¨æå¡å¨çåºç¨è¿è¡é¨ç½²ä¸ç®¡ç
ç³»ç»åè½
- ç¨æ·ç®¡çï¼æä¾ç¨æ·çç¸å ³é ç½®ï¼æ°å¢ç¨æ·åï¼é»è®¤å¯ç 为123456
- è§è²ç®¡çï¼å¯¹æéä¸èåè¿è¡åé ï¼å¯æ ¹æ®é¨é¨è®¾ç½®è§è²çæ°æ®æé
- èå管çï¼å·²å®ç°èåå¨æè·¯ç±ï¼å端å¯é ç½®åï¼æ¯æå¤çº§èå
- é¨é¨ç®¡çï¼å¯é 置系ç»ç»ç»æ¶æï¼æ å½¢è¡¨æ ¼å±ç¤º
- å²ä½ç®¡çï¼é ç½®å个é¨é¨çèä½
- åå ¸ç®¡çï¼å¯ç»´æ¤å¸¸ç¨ä¸äºåºå®çæ°æ®ï¼å¦ï¼ç¶æï¼æ§å«ç
- ç³»ç»æ¥å¿ï¼è®°å½ç¨æ·æä½æ¥å¿ä¸å¼å¸¸æ¥å¿ï¼æ¹ä¾¿å¼å人åå®ä½æé
- SQLçæ§ï¼éç¨druid çæ§æ°æ®åºè®¿é®æ§è½ï¼é»è®¤ç¨æ·åadminï¼å¯ç 123456
- å®æ¶ä»»å¡ï¼æ´åQuartzåå®æ¶ä»»å¡ï¼å å ¥ä»»å¡æ¥å¿ï¼ä»»å¡è¿è¡æ åµä¸ç®äºç¶
- 代ç çæï¼é«çµæ´»åº¦çæåå端代ç ï¼åå°å¤§ééå¤çå·¥ä½ä»»å¡
- é®ä»¶å·¥å ·ï¼é åå¯ææ¬ï¼åéhtmlæ ¼å¼çé®ä»¶
- ä¸çäºåå¨ï¼å¯åæ¥ä¸çäºåå¨çæ°æ®å°ç³»ç»ï¼æ éç»å½ä¸çäºç´æ¥æä½äºæ°æ®
- æ¯ä»å®æ¯ä»ï¼æ´åäºæ¯ä»å®æ¯ä»å¹¶ä¸æä¾äºæµè¯è´¦å·ï¼å¯èªè¡æµè¯
- æå¡çæ§ï¼çæ§æå¡å¨çè´è½½æ åµ
- è¿ç»´ç®¡çï¼ä¸é®é¨ç½²ä½ çåºç¨
项ç®ç»æ
项ç®éç¨æåè½å模åçå¼åæ¹å¼ï¼ç»æå¦ä¸
-
eladmin-common
为系ç»çå ¬å ±æ¨¡åï¼åç§å·¥å ·ç±»ï¼å ¬å ±é ç½®åå¨è¯¥æ¨¡å -
eladmin-system
为系ç»æ ¸å¿æ¨¡åä¹æ¯é¡¹ç®å ¥å£æ¨¡åï¼ä¹æ¯æç»éè¦æå é¨ç½²ç模å -
eladmin-logging
为系ç»çæ¥å¿æ¨¡åï¼å ¶ä»æ¨¡åå¦æéè¦è®°å½æ¥å¿éè¦å¼å ¥è¯¥æ¨¡å -
eladmin-tools
为第ä¸æ¹å·¥å ·æ¨¡åï¼å å«ï¼é®ä»¶ãä¸çäºåå¨ãæ¬å°åå¨ãæ¯ä»å® -
eladmin-generator
为系ç»ç代ç çæ模åï¼æ¯æçæåå端CRUD代ç
详ç»ç»æ
- eladmin-common å
Œ
±æ¨¡å
- annotation 为系ç»èªå®ä¹æ³¨è§£
- aspect èªå®ä¹æ³¨è§£çåé¢
- base æä¾äºEntityãDTOåºç±»åmapstructçéç¨mapper
- config èªå®ä¹æéå®ç°ãredisé
ç½®ãswaggeré
ç½®ãRsaé
ç½®ç
- exception 项ç®ç»ä¸å¼å¸¸çå¤ç
- utils ç³»ç»éç¨å·¥å
·ç±»
- eladmin-system ç³»ç»æ ¸å¿æ¨¡åï¼ç³»ç»å¯å¨å
¥å£ï¼
- config é
置跨åä¸éæèµæºï¼ä¸æ°æ®æé
- thread 线ç¨æ± ç¸å
³
- modules ç³»ç»ç¸å
³æ¨¡å(ç»å½ææãç³»ç»çæ§ãå®æ¶ä»»å¡ãè¿ç»´ç®¡çç)
- eladmin-logging ç³»ç»æ¥å¿æ¨¡å
- eladmin-tools ç³»ç»ç¬¬ä¸æ¹å·¥å
·æ¨¡å
- eladmin-generator ç³»ç»ä»£ç çæ模å
ç¹å«é¸£è°¢
-
æè°¢ PanJiaChen 大佬æä¾çå端模æ¿
-
æè°¢ Moxun 大佬æä¾çå端 Curd éç¨ç»ä»¶
-
æè°¢ zhy6599 大佬æä¾çå端è¿ç»´ç®¡çç¸å ³åè½
-
æè°¢ j.yao.SUSE 大佬æä¾çå¿åæ¥å£ä¸Rediséæµçåè½
-
æè°¢ d15801543974 大佬æä¾çåºäºæ³¨è§£çéç¨æ¥è¯¢æ¹å¼
项ç®æèµ
项ç®çåå±ç¦»ä¸å¼ä½ çæ¯æï¼è¯·ä½è åæ¯åå¡å§â Donate
åé¦äº¤æµ
- QQ交æµç¾¤ï¼891137268 ã947578238ã659622532
Top Related Projects
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
🎉 vue admin,vue3 admin,vue3.0 admin,vue后台管理,vue-admin,vue3.0-admin,admin,vue-admin,vue-element-admin,ant-design,vab admin pro,vab admin plus,vue admin plus,vue admin pro
A modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!
Vue3、Element Plus、typescript后台管理系统
Vue 2.0 admin management system template based on iView
mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。
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