基于SpringBoot2.0构建的种子项目
程序员文章站
2024-03-23 09:44:28
...
个人开发的基于SpringBoot2.0构建的种子项目,配置了通用Mapper、Service接口,以及使用FreeMarker模板引擎实现了代码生成器,可用于中小项目的快速开发。
技术选用
- Spring Boot
- Mybatis
- tk.Mybatis
- PageHelper
- FastJson
- Druid
- FreeMarker
代码结构
├── README.md ├── pom.xml ├── springboot-seedproject.iml ├── src │ ├── main │ │ ├── java │ │ │ └── pers │ │ │ └── hong │ │ │ └── project │ │ │ ├── SpringbootSeedprojectApplication.java 启动类 │ │ │ ├── common │ │ │ │ ├── Constants.java 常量 │ │ │ │ ├── Result.java 结果集 │ │ │ │ ├── ResultGenerator.java 响应结果生成工具 │ │ │ │ └── ServiceException.java 业务异常 │ │ │ ├── config │ │ │ │ ├── MybatisConfig.java Mybatis配置 │ │ │ │ └── WebMvcConfig.java MVC配置 │ │ │ ├── core │ │ │ │ ├── AbstractService.java service实现 │ │ │ │ ├── Mapper.java 通用mapper │ │ │ │ └── Service.java 通用service │ │ │ └── generator │ │ │ └── CodeGenerator.java 代码生成器 │ │ └── resources │ │ ├── application-dev.yml 开发环境 │ │ ├── application-pro.yml 生产环境 │ │ ├── application-test.yml 测试环境 │ │ ├── application.yml 配置文件 │ │ ├── banner.txt banner │ │ ├── mapper │ │ └── template 模板文件 │ │ ├── controller.ftl │ │ ├── service-impl.ftl │ │ └── service.ftl │ └── test │ └── java │ └── pers │ └── hong │ └── project │ └── SpringbootSeedprojectApplicationTests.java |
部分代码
WebMVC配置
/**
* @Description: WebMVC配置类
* @Auther: zwh
* @Date: 2018/10/18
*/
public class WebMvcConfig implements WebMvcConfigurer {
public static Logger logger = LoggerFactory.getLogger(WebMvcConfig.class);
/**
* 配置异步支持
*
* @param configurer
*/
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(new ThreadPoolTaskExecutor());
configureAsyncSupport(configurer);
}
/**
* 配置资源控制器
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/statis/**")
.addResourceLocations("classpath:/static/");
}
/**
* 默认请求处理
*
* @param configurer
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
/**
* 跨域访问相关配置
*
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/test/**") //可以跨域访问的URL路规则
.allowedOrigins("http://localhost:8080/") //可以跨域访问的访问者
.allowedMethods("GET", "POST", "PUT", "DELETE") //可以跨域访问的方法
.allowedHeaders("") //可以跨域访问的Headers
;
}
// /**
// * 配置异常处理器,会替换系统原本的异常处理器
// * 可参考SpringMVC的 DefaultHandlerExceptionResolver
// * @param resolvers
// */
// @Override
// public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
// resolvers.add(new HandlerExceptionResolver() {
// @Override
// public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
// //创建结果集对象
// Result result = new Result();
// 使用视图对象,根据返回参数做判断,然后进行自定义异常页面跳转
// if (ex instanceof xxException) {
// ModelAndView model = new ModelAndView();
// model.setView("", xx);
// return model;
// }else if(ex instanceof yyException){
// doOtherThings;
// }
//
// }
//
// });
// }
/**
* 配置读写Request或者Response的BODY的HttpMessageConverter,会替换默认的HttpMessageConverters
* 这里使用阿里的FastJson作为JSON MessageConverter
*
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//初始化转换器
FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter();
//初始化一个转换器配置
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//将配置设置给转换器并添加到HttpMessageConverter转换器列表中
fastConvert.setFastJsonConfig(fastJsonConfig);
//设置编码格式
fastConvert.setDefaultCharset(Charset.forName("UTF-8"));
fastConvert.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8));
converters.add(fastConvert);
}
}
通用service接口
/**
* @Description: 通用service
* @Auther: zwh
* @Date: 2018/10/18
*/
public interface Service<T> {
/**
* 通过Id查找
*
* @param id
* @return T
*/
T findById(Integer id);
/**
* 通过Model中某个成员变量名称(非数据表中column的名称)查找,value需符合unique约束
*
* @param fieldName
* @return T
*/
T findBy(String fieldName, Object value) throws TooManyResultsException;
/**
* 条件查询
*
* @param condition
* @return List
*/
List<T> findByCondition(Condition condition);
/**
* 查询所有信息
*
* @return List
*/
List<T> findAll();
/**
* 增加数据
*
* @param model
*/
void save(T model);
/**
* 批量增加数据
*
* @param models
*/
void save(List<T> models);
/**
* 根据id删除数据
*
* @param id
*/
void deleteById(Integer id);
/**
* 批量删除
*
* @param ids
*/
void deleteBatch(String ids);
/**
* 更新数据
*
* @param model
*/
void update(T model);
}
项目地址:https://github.com/hong52ni/SpringBoot-SeedProject
如果项目有用的到的地方,希望能点个Star或Fork?
上一篇: Leetcode——两数之和
下一篇: 9.java抽象类的使用
推荐阅读
-
基于SpringBoot2.0构建的种子项目
-
我的实战项目:基于SSM的班级周报系统(周报填写、生成多表)
-
基于Verilog有限状态机实现的LED按键灯项目
-
基于业务模块组件的系统架构 博客分类: 架构乱弹 OSGI设计模式项目管理框架数据结构
-
基于Spring Boot的API、RESTful API 项目骨架
-
CentOS 6.5基于OpenVPN的VPN服务器构建 博客分类: VPN/OTP openvpnvpn动态口令
-
SPHiveDB: 基于 sqlite 的数据库服务器 博客分类: OpenSource项目 应用服务器SQLite数据结构MongoDBSQL
-
ABAP system landscape和vue项目webpack构建的最佳实践 ABAPweb-packjavascriptvuevuejs
-
基于WebSocket的项目构建工具实现
-
SSH框架网上商城项目第6战之基于DataGrid的数据显示