SpringBoot搭建,注解的使用。(记录2)

 搭建项目   

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的解析类


        
提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值