# yx-common
**Repository Path**: youxiaxiaomage/yx-common
## Basic Information
- **Project Name**: yx-common
- **Description**: 频繁使用的工具,以及一些基类
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://gitee.com/youxiaxiaomage
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2017-10-30
- **Last Updated**: 2024-11-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
yx-common,tools for daily work accumulation.
#### 项目介绍
主要积累工作中使用频繁的方法,以及个人的理解的一些工具类
#### 软件架构
```
├─yx-common
│ │
│ ├─annotation---------------- 注解
│ │
│ ├─base-------------------- 基类
│ │
│ ├─common---------------- 常用工具类
│ │
│ ├─container ------------ 容器类
│ │
│ ├─executor---------------- 执行器
│ │
│ └─json---------------- json的几种工具
```
### 工具类用法
1.BaseMode:
```
@Data
@TableName("sys_user")
@EqualsAndHashCode(callSuper = false)
public class SysUser extends BaseModel
{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 8060826399981108784L;
/**
* 用户名
*/
@TableField
private String userName;
/**
* 密码
*/
@TableField
private String password;
/**
* 登录日期
*/
@TableField
private Date loginDate;
/**
* 登录Ip
*/
@TableField
private String loginIp;
}
```
2.BaseMapper:
```
public interface SysUserMapper extends BaseMapper
{
/**
* 根据用户名查询
* @param userName
* @return
*/
@Select("select * from sys_user where user_name = #{userName}")
SysUser queryByUserName(String userName);
}
```
3.BaseService:
```
public interface SysLogService extends BaseService
{
}
```
4.BaseServiceImpl:
```
@Service
public class SysUserServiceImpl extends BaseServiceImpl implements SysUserService
{
@Autowired
private SysUserMapper sysUserMapper;
@Override
public SysUser queryByUserName(String userName)
{
return this.sysUserMapper.queryByUserName(userName);
}
}
```
5.BaseController:
```
@RequestMapping
@Controller
public class LoginController extends BaseController
{
/**
* 登录视图
* 重写方法
* @return
* @see com.gitee.base.BaseController#view()
*/
@GetMapping("/login")
@Override
public String view()
{
return "login";
}
/**
* 登录
* @param userName 用户名
* @param password 密码
* @return
*/
@Log(module=ModuleEnum.USER, value="用户登录", type=LogType.LOGIN)
@PostMapping("/login")
@ResponseBody
public Result login(String userName, String password)
{
SysUser user = this.service.queryByUserName(userName);
if (user == null)
{
throw new LoginException(Resources.getMessage(Constants.ACCOUNT_NOT_EXIST));
}
if(!password.equals(user.getPassword()))
{
throw new LoginException(Resources.getMessage(Constants.PASSWORD_ERROR));
}
// save user into session.
WebUtil.saveCurrentUser(user);
return Result.success();
}
}
```
注意如果`LoginController`这个控制器默认的是`SysUserService`,如果要注入其他`Service`,只需在控制器中定义`***Service`,不需要使用`@Autowired`注解。
6.自定义异常写法
```
public class LoginException extends BaseException
{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -7575053375573634406L;
public LoginException()
{
}
public LoginException(String message)
{
super(message);
}
public LoginException(Throwable ex)
{
super(ex);
}
public LoginException(String message, Throwable ex)
{
super(message, ex);
}
@Override
protected HttpCode getHttpCode()
{
return HttpCode.FAIL;
}
}
```
7.国际化:
注意有国际化文件,异常信息都在这配置,如果有拓展可以在`yx-common`中添加,或者拷贝至本地工程中添加,默认加载本地工程路径下的