一个简单的SpringBoot网页交互和注解的详细介绍(1)

        1、首先要自己创建一个数据库,创造所有的属性放在pojo方法下面,我们这里定义了两个方法,一个是员工属性,一个是员工部门,为了方便操作我们导入了lombok包,这个包可以自动创建有参构造和无参数构造。引入代码如图一所示,随后便是定义构造,这里由于日期构造复杂,我们自己手写了有参构造函数,随后在函数内部给其赋值。@Data注解是由Lombok库提供的,会生成getter、setter以及equals()、hashCode()、toString()等方法

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
</dependency>

         2、随后我们要实现这两个类的接口函数,首先导入@Repository这个注解,将接口交给SPringBoot处理,在接口中定义或者导入数据库并且实现增删改查基本操作。其中@Autowired可以标注在属性上、方法上和构造器上,来完成自动装配。默认是根据属性类型,spring自动将匹配到的属性值进行注入,然后就可以使用这个属性,这个方法和@Resource都是实现Bean的依赖注入的,其中@Autowired是通过属性进行注入,其中有一个required函数默认是True表示强制进行注入,如果没有存在同类型的属性就会报错也就是说一个注解要有一个Bean来匹配,而且超过一个Bean也会报错,Qualifier(value)可以用名称进行匹配解决这个问题. @Resouce和上述方法使用方式完全相同,但是它可以有两种注入方式 name 和 type两种类型,name的话可以通过名字来注入。并且这个是JRS提供的注解,Spring只是提供了集成作用。默认是通过反射机制进行name的注入。

public class EmployeeDao {
    private static Map<Integer, Employee> employee = null;
    @Autowired
    private DepartmentDAO departmentDAO;
    static{
        employee = new HashMap<Integer,Employee>();
        employee.put(1001,new Employee(1001,"AA","24541@qq.com",1,new Department(101,"教学部")));
        employee.put(1002,new Employee(1002,"BB","24542@qq.com",1,new Department(102,"学习部")));
        employee.put(1003,new Employee(1003,"DD","24543@qq.com",0,new Department(103,"市场部")));
        employee.put(1004,new Employee(1004,"CC","24544@qq.com",0,new Department(103,"市场部")));
        employee.put(1005,new Employee(1005,"EE","24545@qq.com",1,new Department(103,"市场部")));

    }
    //主键自己增加,增加一个员工
    private static Integer initID = 1006;
    public void save(Employee employees){
        if(employees.getId()==null){
            employees.setId(initID++);
        }
        employees.setDepartment(departmentDAO.getDepartmentById(employees.getDepartment().getId()));
        employee.put(employees.getId(),employees);
    }
    //查询全部员工信息
    public Collection<Employee> getAll(){
        return employee.values();
    }

    public Employee getEmployeeById(int id){
        return employee.get(id);
    }
    public void delete(Integer id){
        employee.remove(id);
    }


}

注意:我们这里将一下几个常用注解的功能

        @bean处理方面的除了上面的@Autowired外还有一些管理的注解

  • 1、@Component:这里泛指组件应用,可以使用这个注解或者一些公共方法
  • 2、@Respository 常常用来标记到Dao类
  • 3、@Service 服务层,也是常用来注解到Dao类
  • 4、@Controller空着Bean 这里还有一个增强注解叫RestController
  • 5、@Configuration 声明配置类一般在Config包下面,这其中还有一个@Scope一块使用的,声明生命周期和作用域的

Http相关的注解

  1. @GetMapping 从服务器上获取特定的资源
  2. @PostMapping 创建一个新资源
  3. @PutMapping 更新服务器上的资源
  4. @DeleteMapping 删除特定的资源
  5. @RequesMapping("网站路径之前常用这一类")

前后端参数的注解

  1. @RequestParam 用来请求表单中类型的 key=value格式的数据,表单格式
  2. @PathVariable 路径变量,参数与大括号里面的名字是一样的
  3. @RequestBody 获取请求body的数据,常用来@PostMapping请求来提交对象数据
  4. @ResponseBody 表示该方法的返回值直接写入body中,Json格式

读取配置

  1. @Value 直接读取各种资源名称的属性名字
  2. @ConfigurationProperties 读取配置信息并且与bean绑定一下

参数校验

        这里注意的是需要自己导入一个validation包才能实现一些参数校验功能(常用的@min(value),@max(value),@Email(value),@Size),同时要搭配@Valid属性进行校验。

 异常处理

        其中常用的有两种@ControllerAdvice(定义全局异常处理类) 和 @ExceptionHandler(声明异常处理方法)

测试处理

  1.         @Transactional 被声明的测试方法会出现回滚,避免污染数据
  2.         @WithMockUser 用来模拟一个真实的用户场景,并且可以赋予权限
  3.         @Test 测试类

配置启动

  1.         @EnableAutoConfiguration 这个注解告诉SpringBoot根据添加的jar来自动装配注解
  2.         @CondaitionalOn*****这里面的注解是指定或者配置文件
  3.         @ConponentScan表示扫描那些包

         @indexd spring5.0之后新加入的注解,该注解不需要每次都去扫描文件,而是在添加后直接将包中所有的@Controller注解的文件都打包成一个包从而提高运行的效率和时间。

        @import注解实现第三方配置类的使用,他也是Enable***文件的一个基础,对于自动装配的使用有新的提高

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值