[根目录](../CLAUDE.md) > **jsowell-framework**

# jsowell-framework 模块

核心框架模块，提供安全、权限、登录等基础服务。

---

## 变更记录 (Changelog)

### 2026-02-03 11:32:30
- 初始化模块文档
- 识别 45 个核心类

---

## 模块职责

- **安全框架**: Spring Security 配置
- **JWT 认证**: Token 生成与验证
- **权限控制**: 数据权限、接口权限
- **数据源管理**: 动态数据源、Druid 配置
- **AOP 切面**: 日志、限流、数据权限
- **异常处理**: 全局异常处理

---

## 入口与启动

本模块为基础框架模块，无独立启动入口。

---

## 对外接口

### 核心服务

| 服务 | 说明 |
|------|------|
| `TokenService` | JWT Token 服务 |
| `SysLoginService` | 登录服务 |
| `SysPasswordService` | 密码服务 |
| `PermissionService` | 权限服务 |
| `UserDetailsServiceImpl` | 用户详情服务 |

### 配置类

| 配置类 | 说明 |
|--------|------|
| `SecurityConfig` | Spring Security 配置 |
| `RedisConfig` | Redis 配置 |
| `DruidConfig` | Druid 数据源配置 |
| `MyBatisConfig` | MyBatis 配置 |
| `ThreadPoolConfig` | 线程池配置 |

### AOP 切面

| 切面 | 说明 |
|------|------|
| `LogAspect` | 操作日志记录 |
| `DataScopeAspect` | 数据权限过滤 |
| `DataSourceAspect` | 动态数据源切换 |
| `RateLimiterAspect` | 接口限流 |
| `CostTimeAspect` | 耗时统计 |

---

## 关键依赖与配置

### Maven 依赖

```xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>com.jsowell</groupId>
        <artifactId>jsowell-system</artifactId>
    </dependency>
</dependencies>
```

---

## 常见问题 (FAQ)

### Q: Token 过期如何处理？
Token 有效期配置在 `application.yml` 的 `token.expireTime`，默认 1440 分钟

### Q: 如何添加接口白名单？
在 `SecurityConfig` 中配置 `permitAllUrls` 或使用 `@Anonymous` 注解

### Q: 数据权限如何配置？
使用 `@DataScope` 注解，配置 `deptAlias` 和 `userAlias`

---

## 相关文件清单

```
jsowell-framework/
├── src/main/java/com/jsowell/framework/
│   ├── aspectj/                   # AOP 切面
│   │   ├── LogAspect.java
│   │   ├── DataScopeAspect.java
│   │   ├── DataSourceAspect.java
│   │   ├── RateLimiterAspect.java
│   │   └── CostTimeAspect.java
│   ├── async/                     # 异步处理
│   ├── config/                    # 配置类
│   │   ├── SecurityConfig.java
│   │   ├── RedisConfig.java
│   │   ├── DruidConfig.java
│   │   ├── MyBatisConfig.java
│   │   └── ThreadPoolConfig.java
│   ├── datasource/                # 动态数据源
│   ├── interceptor/               # 拦截器
│   ├── manager/                   # 管理器
│   ├── security/                  # 安全相关
│   │   ├── filter/
│   │   └── handle/
│   └── web/
│       ├── domain/               # 服务器信息
│       ├── exception/            # 异常处理
│       └── service/              # 核心服务
└── pom.xml
```
