最近给别人上线一个前后台分离的web 项目,项目初步只是一个简单的没有前后台交互的项目,就简单的用 jquery.js 和 bootstrap 进行的前段界面塔建,最后提出来说要后台,功能也不难,所以就选择了spring boot + lombok + swagger +
mybatis-spring-boot-starter 搭建了后台服务
代码就不贴出来了简单的描述下 lombok 和 swagger 的功能
lombok : 自动生成属性setter、getter 主要针对与model层的类实现,举例:
package com.qingdaochemical.model;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* Created by bobby on 2018/3/5.
*/
@Data //通过Data 和 Getter Setter 注解可以实现免去写get和set 方法,原理没来的急看
@Getter
@Setter
public class News {
public String titlename;
public String textvalue;
}
swagger:原始用来对云平台接口提供说明文档,在这里不想写后台管理界面,直接用swagger将需要的接口提供出去
controller层举例:
public class CompanyInfo{
@Autowired
private CompanyService companyService;
@ApiOperation(value = "根据", notes = "根据公司名称更新公司详情") //swagger 注解
@GetMapping("/updateCompanyInfo")
public String updateCompanyInfo(@RequestParam String Companyinfo,@RequestParam String CompanyName)
{
Company obj = new Company();
obj.setCompanyinfo(Companyinfo);
obj.setCompanyname(CompanyName);
companyService.updateInfoByname(obj);
return "OK";
}
@ApiOperation(value = "查询公司名称", notes = "查询公司名称")
@GetMapping("/selectCompanyInfo")
public List<Company> selectCompanyInfo()
{
return companyService.selectInfo();
}
}
//swagger 发现注解,得添加 一下两个注解
@Configuration
@EnableSwagger2public class SwaggerConfiguration {
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name("Authorization").description("tokens").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
@Bean
public Docket RestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("qingdaochemical-introduce")
.globalOperationParameters(setHeaderToken())
.apiInfo(ApiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.qingdaochemical.Controllers"))
.build();
}
private ApiInfo ApiInfo() {
Contact contact = new Contact("青岛化工", "", "");
ApiInfo apiInfo = new ApiInfoBuilder()
.title("主页 - API接口")
.description("REST风格API")
.contact(contact)
.version("1.0")
.build();
return apiInfo;
}
}
因为刚开始买的云虚拟云,只支持php后台,不会写,所以放弃,只能通过前后台分离不浪费服务器资源,并且合理使用现在资源。重新买了一台云服务器ECS,将webservice 部署在 ecs 上,启动命令
nohup java -jar xxx.jar &
结果发现端口无法访问,参考:http://blog.csdn.net/swl979623074/article/details/71910308
阿里云后台安全组将端口开放;
在本地通过tomcat 不是访问远端地址,发现前段界面报告不支持跨域访问,网上说可以通过更改前段代码搞定,试了,没管用,直接通过更改webservice 搞定:
代码如下:
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1
corsConfiguration.addAllowedHeader("*"); // 2
corsConfiguration.addAllowedMethod("*"); // 3
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 4
return new CorsFilter(source);
}
}