搭建项目
1、建一个SpringBoot项目作为maven父工程,pom中加入<packaging>pom</packaging> 删去<dependency>和<build>和一些不用的东西
2、建立子model,pom中加入parent信息
<parent> <groupId>com.example</groupId> <artifactId>yeb</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
3、把版本调号整好 1.8
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
4、子model中导入要用的依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0</version> </dependency> <!-- 第三方ui --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> </dependencies>
5、编写application.yml
6、编写SpringBoot启动类Application.java
@SpringBootApplication @MapperScan("com.ning.server.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
7、写CodeGenerator.java 让MyBatis-Plus自己去写【模板在官网】
// 要生成的包配置 PackageConfig pc = new PackageConfig(); // pc.setModuleName(scanner("模块名")); pc.setParent("com.ning.server") //父路径 .setMapper("mapper") //mapper层文件存放位置 .setService("service") //service接口层文件存放位置 .setEntity("pojo") //dao层文件存放位置 .setServiceImpl("service.impl") //service接口的实现类存放位置 .setController("controller"); //controller层存放位置 mpg.setPackageInfo(pc);
源码参考 员工管理系统-yeb-云E办后端: 云办公,线上办公系统后端代码
注解的使用
@AllArgsConstructor
:
类上使用,该注解提供一个全参数的构造方法,默认不提供无参构造。需要注意的是,这里的全参不包括已初始化的final字段(主要是final
字段,一旦被赋值不允许再被修改)
@NoArgsConstructor:
在类上使用,它可以提供一个无参构造器
@component:
实现bean的注入,开发中我们可以使用注解 取代 xml配置文件。
web开发,提供3个@Component注解衍生注解(功能一样)取代
@Repository(“名称”):dao层
@Service(“名称”):service层
@Controller(“名称”):web层
@Autowired:
自动根据类型注入 @Qualifier(“名称”):指定自动注入的id名称
@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁
@Service:
用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。在调用该service的时候只需要将该类注入接口中即可
@Controller :
在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面,@Controller配合视图解析器InternalResourceViewResolver,返回到指定页面
@RestController:
相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。例如:本来应该到success.jsp页面的,则其显示success.
@RequestMapping
如果我们想使用传统的@RequestMapping注释实现URL处理程序:
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
新方法可以简化为:
@GetMapping("/get/{id}")
@GetMapping:
支持多个@RequestParam参数,请求的参数可以直接放在url中,实例如下
@PostMapping:
仅支持一个@RequestBody,要求参数封装为一个dto,且请求时参数不放在url中
@ResponseBody:
作用其实是将java对象转为json格式的数据。将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
@equalsandhashcode:(Lombok下的注解)
@equalsandhashcode(callsuper=false)表达为在对象比较时不会考虑父类中的成员,仅仅比较子类中的属性就判断是否相同,使用@Data时默认@equalsandhashcode的状态为callsuper=false
@equalsandhashcode(callsuper=true)在比较时会考虑父类中的成员,通过父类和子类中的属性一起判断是否相同
@data: (Lombok下的注解)
代替setter、getter方法,配置好以后就可反复使用
@TableName: (mybatis-plus下的注解)
主要是实现实体类型和数据库中的表实现映射。
@ApiModel: (swagger下的注解 )
在实体类上边使用,标记类时swagger的解析类