2020-01-02 Element 02

为什么要使用Maven多模块开发
  • 方便维护,拆分越细越好维护
  • 公共内容其他项目也能使用
  • 不去拆分项目,随着业务增加,代码越来越多,pom.xml越来越长
  • 有些代码不希望所有人都可以修改
搭建Maven多模块
  • 引用关系 拥有传递性


    image.png
配置文件
  • web.xml ---> crm-web
  • applicationContext-mvc.xml --->crm-web
  • applicationContext.xml --->crm-service
  • db.properties,log4j --->crm-mapper
导入jar包
  • crm_parent: 公共的spring的包

  • crm_web: spring-web spring-webmvc

  • crm_service: 引用crm_mapper

  • crm_mapper: mybatis dbcp 等

开发项目时应尽量满足以下要求
  • 开闭原则
    1.对扩展开发
    2.对修改关闭
  • 低耦合 高内聚
    1.低耦合: 模块和模块直接,类和类之间 耦合度要低
    ​ 2. 高内聚: 指的类里面的方法,它应该达到高内聚的效率
resufull风格
  • restful风格它是http协议扩展 是以资源为核心,通过url定位资源,通过不同请求方式表示操作.(PUT-add,POST-update,DELET-del,GET-获取或查询,PATCH,HEAD,OPTION)

  • put -- 新增 (修改)

  • post --修改(新增)

  • get --查询

  • delete --删除

  • patch --查询

  • head --头信息(不用)

restfull写法
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;

    @RequestMapping(value="/list",method= RequestMethod.PATCH)
    @ResponseBody
    public List list(){
        return userService.findAll();
    }

    /**
     * 新增
     * @param user
     * @return
     */
    @RequestMapping(value="/save",method = RequestMethod.PUT)
    @ResponseBody
    public AjaxResult save(@RequestBody  User user){
        System.out.println("新增数据");
        System.out.println(user);
        return new AjaxResult();
    }

    /**
     * 修改
     * @param user
     * @return
     */
    @RequestMapping(value="/update",method = RequestMethod.POST)
    @ResponseBody
    public AjaxResult update(@RequestBody User user){
        System.out.println("修改数据");
        System.out.println(user);
        return new AjaxResult();
    }

    /**
     * 删除
     * @param id
     * @return
     */
    @RequestMapping(value="/delete/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public AjaxResult delete(@PathVariable("id") Long id){
        System.out.println("删除数据");
        System.out.println("删除的id:"+id);
        return new AjaxResult();
    }

    /**
     * 查询单个
     * @param id
     * @return
     */
    @RequestMapping(value="/query/{id}",method = RequestMethod.GET)
    @ResponseBody
    public AjaxResult queryOne(@PathVariable("id") Long id){
        System.out.println("查询数据");
        System.out.println("查询的id:"+id);
        return new AjaxResult();
    }
}
swagger用法
  • 导入jar包
 
        
            io.springfox
            springfox-swagger2
            ${springfox.version}
        
        
            io.springfox
            springfox-swagger-ui
            ${springfox.version}
        
  • 写一个配置类,扫描controller生成文档
@Configuration   //相当于写了spring配置 applicationContext.xml
@EnableWebMvc   //开启webmvc
@EnableSwagger2 //开启swagger
/**
 * 扫描个包下面controller来生成接口描述
 */
@ComponentScan(basePackages="com.fx.web.controller")
public class SwaggerConfig {

    //
    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(this.apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.fx.web.controller"))
                .paths(PathSelectors.any())
                .build();
    }


    //描述信息
    private ApiInfo apiInfo(){
        @SuppressWarnings("deprecation")
        ApiInfo info=new ApiInfo(
                "itsource20190924crud测试",
                "一个完成crud",
                "v1",
                "http://www.itsource.cn",
                "zytest",
                "apache",
                "http://www.itsource.cn");
        return info;
    }
}
  • 扫描的配置

  • 启动测试
http://localhost/swagger-ui.html
  • 效果图


    image.png
vue-admin-master模块
  • 下载文件
  • 安装并运行
npm install
npm run dev
  • 如果node-sass安装失败---解决方案
npm install -g node-gyp

npm uninstall node-sass

npm install node-sass
Postman
image.png

image.png
image.png

image.png

image.png

你可能感兴趣的:(2020-01-02 Element 02)