Swagger2创设完全项目,多少个便当的后台管理种类

下面介绍一下guns后台管理系统的部署运行及功能开发,boot,在线帮助

88bifa必发唯一官网 34

引言:

88bifa必发唯一官网 1图片发自简书App

 

     
  作为一个刚入职场的小白,至今还未毕业,在实习生的岗位中摸索,工作之余发现了一个十分简便的后台管理系统。该系统是基于springmvc

前言:为什么选择spring
boot?或许对于经历过编写大量的配置文件的小伙伴,有一点就可以打动他—–零配置运行一个程序。而且spring
boot内嵌Tomcat,当然,spring
boot还有好多的优点,大大提高了我们的开发进度。

 

  • shiro + mybatis-plus +
    beet,代码简洁,还设有自动代码生成,大大节省代码开发的时间成本。

所以为了有更多的时间陪女朋友,快点加入spring boot的学习吧!!!

动软实战攻略

       
好了,废话不多说,下面介绍一下guns后台管理系统的部署运行及功能开发。

学习此篇文章,如果你对以下知识有一定的了解将会更有利于你对这篇文章的理解。1.spring基础知识,如IOC,AOP等2.mybatis基础3.mysql基础4.maven基础

 

 

好了,开始我们spring
boot的学习吧首先你的电脑上需要以下环境(环境统一,不然会出现奇怪的问题):1.安装
IntelliJ
Idea
2.java环境(版本1.8或以上)3.数据库Mysql(版本5.7或以上)

 

一、代码下载

1.打开idea,并创建一个新的项目:

 

       可直接在git上下载,下载地址:

88bifa必发唯一官网 21.png

 

二、部署运行

2.选择Spring Initializr选项,并选择一个SDK,点击Next

 

    
下载完成后,可直接在IDEA上打开,引入相应的jar包,下图简单介绍guns框架包

88bifa必发唯一官网 32.png

手把手教你用动软

     
 88bifa必发唯一官网 4

3.填写Group(一般为公司域名反写)和Artifact,此项目的管理工具为Maven(当然你也可以使用Gradle),打包方式
为jar包,java版本为1.8,点击Next

 

   
了解了基本的项目框架后,主要的开发在guns-admin这个包中,要成功的运行代码,还需要以下几个步骤:

88bifa必发唯一官网 53.png

 

    2.1 修改配置文件中数据库的用户名密码

4.这里选择先添加Web依赖,点击Next

 

           
 在guns-admin中,有application.yml的配置文件,只要配置数据库等信息,可在改文件中搜索password和username后,将其改为你本地数据库中对应的用户名和密码即可。

88bifa必发唯一官网 64.png

文档编号:20110421

    2.2 在数据库中建表

5.点击Finish

版权所有 © 2004-2011 动软

           
 在guns项目中,有个guns.sql的文件,只需要将该文件在本地数据库中运行,即可创建数据库中的表,表主要包括guns系统的部门表,字典表,用户表,日志表,菜单表等,另外表中也已经插入了现有的数据,十分方便。

88bifa必发唯一官网 75.png

在线帮助:

    2.3
在配置好数据库等信息后,就可以启动项目了,启动类为GunsApplication,找到该类后启动,访问
+
项目端口号(项目端口号可在application.yml配置文件中找到,搜索port即可~),恭喜你,即将看到guns的真面纱啦~

6.好了,我们的spring
boot项目就已经创建好了,我们来看一下项目的结构。对于.mvn mvnw
mvnw.cmd这几个文无关紧要,看着烦,可以删除。

 

    2.4 启动后的界面如下所示,其中账号和密码默认为admin /
111111,成功后即可进入代码的开发啦~~~

88bifa必发唯一官网 86.png

 

           
  88bifa必发唯一官网 9

7.我们来运行一下项目,图中点击任意哪个都可以,快捷键为Ctrl+Shift+F10

目录

三、代码开发

88bifa必发唯一官网 107.png

 

     
 对于一些基本的代码,guns提供一键生成代码的功能,只需在界面操作即可~
以下以我做的食品管理(没办法,本人吃货一个)为例

8.在控制台中会输出一大串日志信息,你如果看到了下图中的信息,恭喜你项目已经启动成功了

一.        产品介绍

       3.1 现在数据库中创建想要管理的表,如下:

88bifa必发唯一官网 118.png

二.        下载安装

             

9.在浏览器访问localhost:8080,你将看到以下信息

三.        注册数据库连接

CREATE TABLE `food` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `NUMBER` varchar(255) NOT NULL COMMENT '商品编号,UUID生成,唯一',
  `NAME` varchar(255) NOT NULL COMMENT '商品名称',
  `PRICE` decimal(10,0) NOT NULL COMMENT '价格',
  `PRODUCTDATE` date NOT NULL COMMENT '生产日期',
  `EXPIRATIONDATE` bigint(20) NOT NULL COMMENT '保质期  单位:天',
  `STOCK` bigint(20) NOT NULL COMMENT '库存',
  `UNIT` varchar(2) DEFAULT NULL COMMENT '单位',
  `STATUS` int(1) NOT NULL COMMENT '状态:1.上架  2.下架',
  `ADDTIME` datetime DEFAULT NULL COMMENT '添加时间',
  `UPDATETIME` datetime DEFAULT NULL COMMENT '最后更新时间',
  `ADDPERSON` varchar(255) DEFAULT NULL COMMENT '添加人',
  `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '描述',
  `REMARK` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT '食品表'

88bifa必发唯一官网 129.png

四.        查看数据库信息

 

我们在com.example.demo下创建一个controller包,在controller包下创建一个Hello.java类。src/main/java/com/example/demo/controller/Hello.java

五.        新建整个项目

      3.2
进入代码生成,在下方选中需要生成的数据库表,还有模板,填写业务名称即可生成。

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class Hello { @RequestMapping public String hello(){ return "hello world"; }}

六.        批量代码生成

         
  88bifa必发唯一官网 13

重新启动我们的项目,并访问localhost:8080/hi我们的spring boot项目的hello
world程序就已经成功了,我们没有写一行配置,就已经将一个spring boot程序运行起来了。

七.        单表代码生成

         
 代码生成后,有food.sql的文件,改文件主要是将生成的功能插入到菜单表中,另外,还需要在系统管理中的角色管理中配置权限,选中角色,点击权限配置,勾选“食品管理”即可。

88bifa必发唯一官网 1410.png

八.        父子表代码生成(事务生成)

         
 88bifa必发唯一官网 15

1.我们整理一下我们的项目目录结构:

88bifa必发唯一官网 1611.png

九.        代码生成规则设置

 

2.在pom.xml文件中添加如下代码

demo/pom.xml

<dependencies> .......... <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> .........</dependencies>

十.        自动生成存储过程

      3.3
代码成功生成后,即可进行开发,开发可以按照系统管理的用户管理进行开发,实现controller、service和dao层,以及相应的页面编写即可。

3.创建数据库和表

建表语句如下:(你也可以使用mysql workbench这个免费工具,官方可下载)

CREATE TABLE `test`.`user` ( `user_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户id', `user_name` VARCHAR NOT NULL COMMENT '用户名', `password` VARCHAR NOT NULL COMMENT '密码', `age` INT NOT NULL COMMENT '年龄', PRIMARY KEY (`user_id`))COMMENT = '用户表';

这样我们就已经将mybatis和mysql集成到我们的spring
boot项目中去了。下面教大家如何配置使用mybatis.(包括如何使用mybatis
generator插件生成代码。)

十一.        自动生成数据库SQL脚本

 

4编写mybatis代码生成的配置

src/main/resources/mybatis下新建一个mybatis-generator.xml

src/main/resources/mybatis/mybatis-generator.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration> <!--导入属性配置--> <properties resource="datasource.properties"/> <!--指定特定数据库的jdbc驱动jar包的位置--> <classPathEntry location="${db.driverLocation}"/> <context targetRuntime="MyBatis3"> <!-- optional,旨在创建class时,对注释进行控制 --> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--jdbc的数据库连接 --> <jdbcConnection driverClass="${db.driverClassName}" connectionURL="${db.url}" userId="${db.username}" password="${db.password}"> </jdbcConnection> <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制--> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类 targetPackage 指定生成的model生成所在的包名 targetProject 指定在该项目下所在的路径 --> <javaModelGenerator targetPackage="com.example.demo.pojo" targetProject="./src/main/java"> <!-- 是否允许子包,即targetPackage.schemaName.tableName --> <property name="enableSubPackages" value="false"/> <!-- 是否对model添加 构造函数 --> <property name="constructorBased" value="true"/> <!-- 是否对类CHAR类型的列的数据进行trim操作 --> <property name="trimStrings" value="true"/> <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --> <property name="immutable" value="false"/> </javaModelGenerator> <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 --> <sqlMapGenerator targetPackage="mybatis/mapper" targetProject="./src/main/resources"> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码 type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 --> <!-- targetPackage:mapper接口dao生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="./src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 每个table标签对应数据库中的一张表,用于生成pojo --> <table tableName="user" domainObjectName="User" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"/> <!-- geelynote mybatis插件的搭建 --> </context></generatorConfiguration>

新建resources/datasource.properties并添加如下代码:(#号后面的为注释,这个文件将会被resources/mybatis/mybatis-generator.xml引用)

#数据库本地的驱动jar包路径(你的路径和此处不一定相同)db.driverLocation=C:/Users/sifu/.m2/repository/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar#数据库驱动db.driverClassName=com.mysql.jdbc.Driver#数据库urldb.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&verifyServerCertificate=false#数据库用户名db.username=root#数据库密码db.password=sifu

修改application.properties名称为application.yml并且添加如下代码(此文件中有严格的代码格式):resources/application.yml

spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&verifyServerCertificate=false driver-class-name: com.mysql.jdbc.Driver username: root password: sifumybatis: mapper-locations: classpath:mybatis/mapper/*.xml type-aliases-package: com.example.demo.pojo

解释:url:数据库链接地址driver-class-name:数据库驱动username:数据库用户名password:数据库密码mapper-locations:指定生成的*.xml文件路径type-aliases-package:指定实体类路径

为什么修改使用yml格式的配置文件,原因是为了使代码更加简洁。以上application.yml代码等同于application.properties的如下代码:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&verifyServerCertificate=falsespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=sifumybatis.mapper-locations=classpath:mybatis/mapper/*.xmlmybatis.type-aliases-package=com.example.demo.pojo

看一下,是不是yml格式的配置更加简洁?至于用哪个,自己决定咯,个人推荐用yml格式的!!

十二.        生成数据库文档

5.添加mybatis generator插件

修改pom.xml文件,添加mybatis的代码生成插件

....... <build> <plugins> .......... <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>${project.basedir}/src/main/resources/mybatis/mybatis-generator.xml </configurationFile> </configuration> </plugin> </plugins> </build>

双击mybatisi-generator:generate(注意:不要运行多次,否则会生成重复的代码,编译时会出现神奇的bug

88bifa必发唯一官网 1712.png

此时Build成功:

88bifa必发唯一官网 1813.png

让我们再看一下我们的项目结构:

88bifa必发唯一官网 1914.png

多了四个文件,这些就是mybatis generator插件生成的代码。UserMapper:用于操作数据库的接口(没有实现类,对应UserMapper.xml文件)User:实体类,对应数据库中的一张表UserExample:用于做条件增删改查用的UserMapper.xml:里面是一些sql语句

用这些生成的代码来操作数据库面对大部分业务已经足够了,如果不能满足,那就自己在UserMapper.javaUserMapper.xml中去编写添加接口和sql语句吧!这个由你自己去探索!!

现在我们的spring boot +
mybatis项目已经基本构建完成了,我们完全可以成功的运行我们的项目。但是到此处还不够,我们还需要一点其他的工具,让我们开发项目更加便捷快速。接着看吧!

为了我们能够更好的测试我们编写的代码,我们在pom.xml中添加如下代码,集成swagger2.pom.xml

<dependencies> ....... <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency></dependencies>

注意:swagger的版本最好设置高一点,版本过低时,参数如果是对象,调试会出现问题,这里设置为2.7.0版本。

并且新建com/example/demo/config/SwaggerConfig.java—swagger的配置文件,添加如下代码:

package com.example.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo) .select() .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) .paths(PathSelectors.any .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot中使用Swagger2构建RESTful APIs") .description .termsOfServiceUrl .contact(new Contact("sifu","www.xxx.com","123456@qq.com")) .version .build(); }}

注意.apis(RequestHandlerSelectors.basePackage中请填写正确的controller路径。

下面让我们来编写一个业务逻辑的代码,往我们的数据库中插入一条数据新建com/example/demo/service/UserService.java

package com.example.demo.service;import com.example.demo.pojo.User;public interface UserService { int add(User user);}

新建com/example/demo service/impl/UserserviceImpl.java

package com.example.demo.service.impl;import com.example.demo.dao.UserMapper;import com.example.demo.pojo.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; public int add(User user) { return userMapper.insert; }}

新建com/example/demo/controller/UserController.java

package com.example.demo.controller;import com.example.demo.pojo.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController { @Autowired private UserService userService; @PostMapping public int add(User user) { return userService.add; }}

现在我们运行一下我们的程序

88bifa必发唯一官网 2015.png

ps:卧槽,报错了??逗我玩呢?浪费我这么多时间

不要急嘛,报错原因是无法找到UserMapper.java.我们在启动类DemoAppliction.java上添加一个注解@MapperScan("com.example.demo.dao"),用于扫描com/example/demo/dao包下的NameMapper.java文件(如果我们不集成Swagger2,则不会报这个错误,也不需要添加此的注解

com/example/demo/DemoAppliction.java

package com.example.demo;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.example.demo.dao")public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}

好了,启动我们的项目,并访问http://localhost:8080/swagger-ui.html我们就可以看到一个调试的界面。

88bifa必发唯一官网 2116.png

是不是感觉这界面看起来很爽,很清晰,但是如果只是好看,那就太low了,重点是在于它的功能强大。

填写参数,因为传的参数是User对象,所以需要填的参数都是实体类中的字段。(UserId是自增的,所以不填)点击Try
it out!

88bifa必发唯一官网 2217.png

Response
Body为返回值为1,说明数据库中已经有一条数据插入了,状态码为200,说明请求成功了。

现在我们来看一下我们的数据库中的数据,我们使用idea自带的数据库连接工具

88bifa必发唯一官网 2318.png

弹出此界面,填写一些必要的信息,点击Test
Connection,如果测试成功,那就点击ok:

88bifa必发唯一官网 2419.png

双击user,我们看到了我们之前添加的数据:

88bifa必发唯一官网 2520.png

到此,我们的spring boot + mybatis
已经完全构建成功了,接下来就是编写业务逻辑层的代码了,这个就由你自己去探索了。

下面我们继续让我们的项目添加Spring AOP1.pom.xml添加如下代码:

<dependencies> ........ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency></dependencies>

2.下载安装一个插件(记得一定要安装好哦!):lombok3.新建com/example/demo/aspect/HttpAspect.java,并添加如下代码(此处为了演示,只添加一些日志打印的代码):

package com.example.demo.aspect;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;@Slf4j@Aspect@Componentpublic class HttpAspect { @Pointcut(value = "execution(public * com.example.demo.controller.*.* public void log() { } @Before public void doBefore(JoinPoint joinPoint) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); // url log.info("url={}", request.getRequestURL; // port log.info("port={}", request.getRemotePort; // method log.info("method={}", request.getMethod; // ip log.info("ip={}", request.getRemoteAddr; // class_method log.info("class_method={}", joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName; // 参数 log.info("args={}", Arrays.toString(joinPoint.getArgs; } @AfterReturning(returning = "object", pointcut = "log public void doAfterReturning(Object object) { log.info("response={}", object); }}

光看此处的代码,我们发现我们根本就没有声明log这个变量,但是我们却使用了它。这就是lombok插件的功能,在这个类上有一个@Slf4j的注解(要使用此注解,lombok插件请安装好),添加这个注解就相当于在此类中添加了如下代码:

import org.slf4j.Logger;.....private final Logger log = org.slf4j.LoggerFactory.getLogger(HttpAspect.class);

注意:此处的log对象必须看清楚是org.slf4j.Logger的实例

添加了这段代码的作用是:在执行controller中的方法之前会先执行此类中的方法。

当然,lombok插件的功能远远不止这一点,剩下的就是你自己去探索了。

这里推荐一个关于lombok的使用的学习教程:

Spring AOP学习教程:

最后,为了我们能更好的进行开发,下面我们继续添加一点功能。

十三.        常用工具

1.热部署

pom.xml88bifa必发唯一官网,添加如下代码:

<dependencies> ........ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency></dependencies><build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> ....... </plugins></build>

设置:

88bifa必发唯一官网 26image.png

按:ctrl+shift+a

88bifa必发唯一官网 27image.png勾选:88bifa必发唯一官网 28image.png

这样,你修改了你项目的代码就不需要点重启,它会自动帮你部署,但是重启有一定的延时,但是比重新点击重启速度快,至于用不用,完全取决于你自己了。(修改static文件中的静态html,css,js等不会重新编译,但是访问时页面依然会改变)

1.        搜索表功能

2.添加MybatisCodeHelper插件

这个插件直接下载安装即可(龟速下载,我也很无奈)。作用就是能够快速的在UserMapper.javaUerMapper.xml之间快速跳转.

88bifa必发唯一官网 2921.png

点击图中标记的图标就可以随意跳转了。

lombok插件一样,此插件也不仅仅这个功能,剩下的你就慢慢探索去吧!

2.        项目发布功能

3.打包

编写完代码之后,我们就需要将项目进行打包了

88bifa必发唯一官网 3022.png

双击package,项目根目录将会出现一个target目录在此目录下将会有一个.jar文件,这个就是我们需要的已经打包好了的可执行文件。

注意:我们这个项目使用的spring boot版本为1.5.6.RELEASE,在运行package时,由于插件也是使用的1.5.6.RELEASE版本,会造成打包失败(具体原因我也不太清楚,可能是这个版本的插件有问题),所以解决办法就是修改插件的版本号,此处改为1.5.4.RELEADSE版本。ps:一遍一遍调试总结出来的结果,我也很无奈呀=-=

<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.4.RELEASE</version> <configuration> <fork>true</fork> </configuration> </plugin> .....</plugins>

下图标记的地方就是我们需要的jar文件

88bifa必发唯一官网 3123.png

3.        代码转换功能

4.运行

现在只要有这个jar文件,同时Java的环境,就可以运行这个jar包了。打开cmd,运行命令:

java -jar demo.jar

88bifa必发唯一官网 3224.png

服务就启动了!!!!

当然此命令后面也可以加参数:

java -jar demo.jar --server.port=8888

88bifa必发唯一官网 3325.png运行在8888端口号上,实际上就相当于在application.yml文件中添加如下代码

server: port: 8888

至于想设置其他的什么参数,我想你应该知道怎么做了吧

最后,我已经将此项目分享到GitHub上了,大家可以去download或者clone

下面我们在聊聊常见的配置:

server: port: 8080 context-path: /user

port:设置项目启动的端口号,默认端口号为8080context-path:设置项目访问的url路径根路径(例如添加了/user则访问链接http://localhost:8080/swagger-ui.html就应该变成这样的http://localhost:8080/user/swagger-ui.html

。。。。。。此处省略一万字节。。。。。

有关Spring Boot的基础学习下面推荐几篇文章:

微服务开发的入门级框架Spring Boot详解微服务开发的入门级框架Spring
Boot详解微服务开发的入门级框架Spring
Boot详解微服务开发的入门级框架Spring
Boot详解微服务开发的入门级框架Spring Boot详解

好了,现在整个项目的基本架构已经基本完成了,我也该去陪我女朋友了,各位小伙伴再见咯。。。。。哦,对了,我不是没女朋友么,哪来的女朋友陪,哎。。。还是敲我的代码去了。。。

88bifa必发唯一官网 34谁说我没对象,new一个就可以了

声明:原创文章,欢迎转载,转载请注明出处,谢谢!

十四.        代码生成组件接口开发

常见问题(单击以下链接查看内容详细)

 

 

 

一.    产品介绍

动软.Net代码生成器
是一款为.Net程序员设计的自动代码生成器,也是一个智能化软件开发平台,它可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。主要实现在对应数据库中表的基类代码的自动生成,包括生成属性、添加、修改、删除、查询、存在性、Model类构造等基础代码片断,支持不同架构代码生成,使程序员可以节省大量机械录入的时间和重复劳动,而将精力集中于核心业务逻辑的开发。
动软代码生成器
同时提供便捷的开发管理功能和多项开发工作中常用到的辅助工具功能,您可以很方便轻松地进行项目开发。

动软让软件开发变得轻松而快乐!让企业不断提升开发效率,同样的时间创造出更大的价值。

二.    下载安装

  1. 系统要求
    Microsoft Windows2000/XP/2003/7 或者更高。机器必须安装.NET Framework
    v2.0。
  2. 官方下载地址:
  3. 下载解压后安装包有如下文件:

 

Codematic2.msi  是动软.NET代码生成器的安装文件。

Builder文件夹是代码生成插件的源码,动软.NET代码生成器支持可扩展的代码生成插件,用户可以定制自己的代码生成的插件,根据接口开发自己的代码生成方式,按自己的需求进行代码生成。

Codematic_Data.MDF和Codematic_Log.LDF 是通过动软新建项目中所带管理模块所需要的数据库文件。后台管理员默认登录用户名:admin  密码:1

 

  1. 双击Codematic2.msi 进行直接安装即可。

安装动软时,如果用户机器360弹出警告,那仅仅是个签名认证提示,并非木马,选择“继续安装”,然后点击“确定”即可。

 

动软郑重声明: 动软.NET代码生成器,绝无插件木马,纯绿色软件。请放心安装。

  1. 安装成功后,在开始-菜单和桌面上会有动软.NET代码生成器的图标。

三.    注册数据库连接

安装完成后,首先要做的就是注册数据库的连接,因为所有的代码生成都将从数据库中获取数据结构信息进行生成。

  1. 在软件界面的左侧数据库视图窗口,选择【服务器】,右键出现菜单:

  或 点击第1个按钮

  1. 选择【添加服务器】,然后,出现“选择数据库类型”窗口

 

  1. 根据自己的实际情况,选择一个机器上有的或自己项目中在用的数据库类型。并确保你选择的数据库是可以正常访问的。然后,【下一步】。
  2. 如果选择的是SQL Server,则会出现:

 

注意事项:

(1) 输入服务器IP地址,如果是本机也可以是:(local) 或是 . 或者 127.0.0.1。
    如果服务器并非只有一个默认实例,请采用:服务器\实例名 的方式连接。
(2)一定要选择和实际数据库服务器版本一致的选项,否则会导致连接数据库错误。
注意:请使用SQLServer的企业版或正式版本,不能是SQL
EXPRESS版,否则无法连接。

(3)身份验证可以选择是SQL Server认证,还是Windows认证。

(4)输入数据库服务器用户名密码。如果不知道,请联系你的数据库管理员。
(5)如果数据库的表比较多,连接速度会比较慢,启用【高效连接模式】实现快速连接。
(6)可以通过【连接/测试】,来连接服务器并获取数据库列表,从而可以实现只选择连接一个库进行操作,减少不必要的连接时间,提高工作效率。

 

  1. 如果选择的是Oracle

 

输入您自己安装过的Oracle的管理员用户名和密码,服务就是安装的Oracle服务名,一般默认是Oracle所在的机器名,如果不确定,请联系您的数据库管理员。

  1. 如果选择的是MySQL

 

  1. 如果选择的是Oledb

 

在地址文本框,可以直接输入Access库的文件地址,注意:库文件尽量不要放在桌面,并且确保你的文件地址正确。如果你的Access并没有设置密码,下面的密码可以不用管。

  1. 如果选择的是SQLite

 

  1. 在以上步骤确定后,动软.NET代码生成器的数据库视图就出现了数据库服务器的信息。

 

四.    查看数据库信息

  1. 在数据库上右键,【浏览数据库】,通过选择库和表可以查看表和字段的信息。

 

 

  1. 选择【新建查询】菜单,即出现SQL的查询分析器窗口,可以输入SQL语句进行查询。
  2. 在表上,右键选择【浏览表数据】,可以查看表的数据内容。

 

 

五.    新建整个项目

在看过了基本的数据库管理功能之外,下面我们就可以开始生成代码了。

首先,一般第一次生成,我们要生成的是整个项目框架。

  1. 选中数据库,然后右键:【新建NET项目】,或者直接点工具栏上的快捷图标均可。

 

  1. 然后,选择项目类型和版本:

 

l  简单三层结构:生成标准的三层架构项目。

l  工厂模式结构:生成基于工厂模式的项目架构,适合一个项目多数据库类型的情况。

l  简单三层结构(管理):生成标准的三层架构项目,并且带有基本的系统管理功能和界面,这些通用的功能主要是节省开发人员的时间,可以在此基础上直接去开发自身业务模块。

这里暂以“简单三层结构(管理)”为例进行说明。

  1. 点击【下一步】,选择要生成的表和配置:

 

双击选择要生成的表,选到右侧列表框。然后点击【开始生成】即可。

如果需要修改一些配置可以修改你自己的命名空间名字,是否去掉表的前缀。

代码模板组件类型,一般初学者建议默认即可。

相关组件说明:

BuilderDALParam        数据访问层(DAL)基于Parameter方式的代码生成组件(推荐)

BuilderDALProc     数据访问层(DAL)基于存储过程方式的代码生成组件

BuilderDALSQL      数据访问层(DAL)基于SQL拼接方式的代码生成组件

BuilderDALTranParam    数据访问层(DAL)带有事务的代码生成组件

DAL由于不同项目要求不同,根据项目需求,选择其中一种方式即可。

BuilderBLLComm    基于标准的业务逻辑层代码(BLL)

BuilderModel  Model层的代码生成组件

BuilderWeb    表示层的代码生成组件

备注:代码还有一些生成规则,是在菜单【工具】-【选项】-【代码生成设置】中进行设置。

 

  1. 点击【开始生成】,则开始进行代码的生成

 

直到出现“项目工程生成成功”提示,项目生成完毕。

  1. 打开生成的文件夹

 

  1. 双击解决方案文件,打开整个项目如图:

 

注:“简单三层结构” 目前暂时是VS2005版本,是为了兼容当前还在用2005的朋友。如果你使用的是VS2008,生成项目后,请先打开VS2008,选择【菜单-文件-打开项目】的方式打开该项目,此时会提示升级项目版本,选择升级一下项目版本到VS2008或VS2010即可,对代码没有任何影响。

  1. 打开Web项目,选中刚才选择生成的那几个表的页面文件夹,右键【包括在项目中】

 

 

  1. 打开web项目下web.config修改数据库连接字符串。

注意:新建项目后,请记得先将安装包里附带的数据库文件Codematic_Data.MDF 附加到SQLServer中。

如果需要加密,可以使用安装包里的加解密工具(官方下载该工具)。

 

 

  1. 然后,选择解决方案进行重新生成整个解决方案。整个创建项目过程即全部完成。

 

 

  1. 如果编译没有错误, 直接按F5键运行即可。整个创建项目过程即全部完成。

运行启动登录页面login.aspx,输入用户名:admin,密码:1  

即登录动软系统框架的后台,界面如下

 

 

六.    批量代码生成

新建项目功能只适合于第一次,因为不可能每次都新建项目,特别是项目已经在开发中。所以,以后的项目开发中更多的应用的是【批量代码生成】功能。批量代码生成特别适合项目后期追加代码时使用。

  1. 选中数据库或者表,然后单击右键菜单【代码批量生成】

 

  1. 出现的窗口和新建项目基本相似,只是多了一个选中架构的选项。

 

备注:代码还有一些生成规则,是在菜单【工具】-【选项】-【代码生成设置】中进行设置。

 

  1. 选则要生成的表,然后点击【导出】
  2. 在生成的文件夹中,我们可以看到:

 

批量生成代码只生成业务表的代码,不再有解决方案文件和项目文件,以及其它类库等。我们可以将生成的这些文件直接拖到现有的解决方案中即可。

 

七.    单表代码生成

除了新建项目和批量代码生成,偶尔我们希望更个性化自定义一些代码生成的字段,而不是全部的自动生成,这是我们可以考虑针对单表的代码生成。

  1. 在左侧【数据库视图】,选中表,右键菜单【单表代码生成器】

 

 

  1. 然后,出现单表的代码生成器界面,我们设置自己需要更改的信息。

 

选项说明:

  • 项目名称:主要用在生成DB脚本中。
  • 二级命名空间:指的是这个类放在某一个二级文件夹下,从而命名空间中应该带这个文件夹的名字。
  • 顶级命名空间:就是项目的命名空间名称。
  • 类名:可以自己根据表名定义自己需要的名字。
  • 类型:主要是生成什么代码,DB脚本主要生成表的存储过程和表的创建脚本及数据脚本。
  • 架构选择:目前仅支持这3种最常用的架构。
  • 代码类型:指生成指定架构中具体某一个项目中的代码。
  • 代码模板组件类型:指生成代码的方式,因为即使同一个代码有很多的写法,组件主要实现的是不同的写法,但每种写法实现的功能都是一样的。主要看项目需要和个人习惯进行选择。
  • 方法选择:指生成最基本的增删改查的方法代码,后续版本将支持用户自定义这些方法。

 

备注:代码还有一些生成规则,是在菜单【工具】-【选项】-【代码生成设置】中进行设置。

 

  1. 然后,点击【生成代码】按钮,即可生成该类的代码:

 

生成的代码,可以直接复制到项目文件中,也可以右键保存成CS文件。

通过窗体下面的Tab按钮可以来回切换设计视图和代码。

八.    父子表代码生成(事务生成)

日常开发中,经常会遇到父子表的情况,同时需要父子表的记录保存需要在事务中实现,以保证数据的一致性。动软也在功能上做了这方面的考虑。

  1. 在表上,右键,选择【父子表代码生成(事务)】:

 

 

父子表的代码生成分3步窗体:1,2,3,当前第一个窗体主要设置父表和子表,以及二者主外键关联的字段。

  1. 然后,选择【继续设置】

 

 

  1. 点击【生成类代码】:

 

这里的所有插入语句都将放在一个事务里完成。

 

九.    代码生成规则设置

打开菜单【工具】-【选项】-【代码生成设置】

 

 

 

这些配置保存后,在生成代码的时候将按照这个规则进行生成。

代码生成的规则设置范围还在不断增加中。

 

另外,不同数据库类型的数据类型各有不同,这里提供了字段类型和C#中的类型建立映射关系,生成代码时将按映射关系来生成代码字段属性的类型。

 

十.    自动生成存储过程

对于习惯使用存储过程的用户,手写表的增、删、改、查的存储过程也是非常头大的事情,动软提供了可以自动生成数据表增删改查的存储过程脚本生成。

主要通过以下几个地方进行生成:

  1. 单表的存储过程生成:

在表上,右键选择【生成存储过程】

 

 

或者:在表上右键,选择【单表代码生成器】,可以更灵活的定义生成存储过程。

 

 

  1. 批量表的存储过程生成。

在数据库上,右键,选择【生成存储过程】,或者选择【导出文件】-【存储过程】。都将生成整个数据库中所有表的存储过程。

 

 

十一.     自动生成数据库SQL脚本

有时候需要迁移数据库,或者生成表结构脚本,导出数据脚本到别的数据库,日常开发中也比较常见,这个可以通过动软自动生成SQL脚本功能来帮您节省大量的时间。

主要通过以下几个地方进行生成:

  1. 单表的数据脚本生成

在表上右键,选择【生成数据脚本】

 

或者,在表上右键,选择【单表代码生成器】,可以更灵活的定义生成存储过程

 

 

生成后:

 

 

  1. 批量表的数据脚本生成。

 

 

出现生成SQL数据库脚本窗口,选择保存的文件名,点击【生成】即可。

 

 

  1. 根据查询结果生成数据脚本。

有时候我们并不像生成整个表的数据脚本,也许表很大,或者其他数据并不需要,只是需要一部分我们需要的数据,生成脚本后,执行导入到其他库,这时候我们可以使用动软代码生成器的这个功能。

在数据库上,右键【新建查询】,或者选择菜单【工具】-【查询分析器】,打开查询语句窗口,输入我们的查询语句,然后单击右键,选择【生成当前查询结果的数据脚本】:

 

则生成的脚本仅仅包括语句查询结果的数据脚本:

 

   如此方便的功能,不得不说很贴心哦。

 

    除此之外,我们可以看到,还有一个非常贴心的功能,就是如果数据访问层使用的是基于SQL拼接的方式的DAL,有时候为了拼写一段长长的SQL语句,眼都看花了,看看动软这个功能吧:

在查询分析器中,测试我们的查询语句,然后,右键选择【生成当前查询SQL语句的拼接代码】

 

 

生成后,这些代码我们直接就可以复制到数据访问层,不用再用手一个个敲了,省出来的时间我们可以去喝咖啡喽。

 

 

 

十二.     生成数据库文档

日常开发,表一多,是不是就头疼每个字段什么意思,以及数据库总是变,文档维护起来很麻烦。特别是新人加入项目团队时,如果没有数据库文档,那么更是云里雾里的搞不清各种数据的意思。动软.NET代码生成器,可以帮你解决这个问题,它可以根据选定的数据库和表批量生成所有表的字段详细信息,包括默认值,描述等表结构信息。免去手工写文档和维护的麻烦,真的不用加班熬夜,可以早回家了。

  1. 选中要生成的数据库,然后选中工具栏【生成数据库文档】按钮。

 

 

  1. 然后,选中需要生成的表

 

这里提供了两种格式的文档,一种是Word格式的,但需要本机安装Office2003或2007。另一种是网页格式,可以生成两种界面风格的网页格式数据库文档。

 

十三.     常用工具

  1. 1.  搜索表功能

 

 

 

 

  1. 2.  项目发布功能

当Web项目开发完毕,我们一般需要把项目发布到一个测试服务器或者生产环境去,但发布的时候,只想发布我们需要发布的文件,或者不想发布一些我们不需要的文件。虽然VS.NET自带的有发布功能,但有时候觉得使用起来还不是那么灵活方便,动软提供了此功能,让你更灵活,简捷的发布网站文件。

选择菜单【工具】-【web项目发布】

 

 

点击【设置】按钮,我们可以设置发布的规则。

 

 

  1. 3.  代码转换功能

这是早期版本留下了的一个代码转换工具,可以支持C#代码到VB代码的转换。

 

十四.     代码生成组件接口开发

动软.NET代码生成器支持可扩展的代码生成插件,用户可以根据接口定制自己的代码生成插件,开发自己的代码生成方式,按需求进行代码生成。

该组件源码可以在下载的安装包里面看到或者去官方网站下载。

 

开发步骤:

1.  引用
Lib文件夹下提供了接口类库,添加4个dll的引用:
LTP.CodeHelper.dll
LTP.IBuilder.dll
LTP.IDBO.dll
LTP.Utility.dll

2.  并在类中using

using LTP.Utility;
using LTP.IDBO;
using LTP.CodeHelper;

3.  继承

DAL数据访问层模板组件:public class BuilderDAL :
LTP.IBuilder.IBuilderDAL
BLL业务逻辑层模板组件:public class BuilderBLL :
LTP.IBuilder.IBuilderBLL

4.  接口方法

具体参考插件源码项目。安装包中提供了插件的源码。

5.  使用配置

【工具】-【选项】-【组件管理】 

在【代码参数】或代码生成器窗口,即可以看到如下插件列表:

 

 

常见问题(单击以下链接查看内容详细)

§  通过partial关键字扩展代码生成器生成的代码 

§  动软左侧树菜单导航,无法正常显示? 

§  动软新建项目(示例项目)如何登录? 

§  Access用OleDbParameter无法更新数据解决方案 

§  动软DBUtility类库DbHelperSQL实现多数据库连接 

§  动软.net代码生成器 启动报错退出解决方法 

§  Asp.net1.0升级ASP.NET
2.0的几个问题总结 

§  示例项目源码无法创建对象实例的常见错误说明