欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于注解开发

程序员文章站 2022-03-06 20:57:04
...

第一个基于注解开发

首先是要有Controller、Service和Repository,即控制层、业务层和持久层

Controller

Controller主要是用户调用

package com.linko.controller;

import com.linko.service.MyService;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;

@Data
@Component
@Controller
/*
也可以添加这个注解,使用这个对应层的注解,可以更加清晰表明这个什么层,层次化明显
 */
/*
如果只是加了Component,这只是注入(本质上注入到IoC容器当中),但没有对myService进行自动装载,所以要加@Autowired,其它层也是类似
    @Autowired实际上等同于xml中我们写bean时候里面的<property name="myRepository" ref="repository"></property>
 */
public class MyController {
    @Autowired
    private MyService myService;
    /*
    模拟客户端请求
     */
    public String service(Double score){
        return myService.doService(score);
    }
}

service

里面有接口,然后还有一个文件夹,主要是实现接口层的类

接口

package com.linko.service;



public interface MyService {
    public String doService(Double score);
}

实体类

package com.linko.service.impl;

import com.linko.repository.MyRepository;
import com.linko.service.MyService;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

/*
业务层
 */
@Data
//@Component
@Repository
public class MyServiceImpl implements MyService {
    @Autowired
    private MyRepository myRepository;

    public String doService(Double score) {
        return myRepository.doRepository(score);
    }
}

repository

接口

package com.linko.repository;


public interface MyRepository {
    public String doRepository(Double score);
}

实体类

package com.linko.repository.impl;

import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

//@Component
@Repository
public class MyRepository implements com.linko.repository.MyRepository {
    public String doRepository(Double score) {
        String result = "";
        if(score < 60){
            result = "不及格";
        }else if(score < 80){
            result = "合格";
        }else{
            result = "优秀";
        }
        return result;
    }
}

通过这次作业,我大致上理解了注解的意义所在,主要是减少xml中的配置,像在xml中要写bean,bean如果还包含其它类,还要设置一个ref,然后再写上bean,一旦类多了,需要注入的类也就多了,容易造成眼花撩乱。

而注解只需要两步,在xml添加自动扫包,然后在每个类加上对应注解即可

当然对于注解也有缺陷的地方,比如对于filter(过滤层)设置特定顺序的话,就只能用bean来配置了,因为bean是从上往下自动扫描了,好像bean里面有个可以设置依赖,实现顺序。

相关标签: spring5