zoukankan      html  css  js  c++  java
  • spring 基础(2.5) 注解说明

    1注解与xml的相应说明

      @EnableConfigurationProperties: 配置@ConfigurationProperties使用,在@EnableConfigurationProperties写入class名称,然后class中写入@ConfigurationProperties

      @SpringBootApplication:springboot的核心注解,目的是开启自动配置
      @PropertySource:指定加载配置文件
      @Configuration: 等价于<Beans></Beans>。用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
      @Bean:等价于<Bean></Bean>
      @ComponentScan:指定范围 等价于<context:component-scan base-package=”com.item.demo”/>
      @ConfigurationProperties: 主要用来把properties配置文件转化为bean(类)来使用的。

      @Mapper:目的就是为了不再写mapper映射文件、为了把mapper这个DAO交給Spring管理 、为了给mapper接口 自动根据一个添加@Mapper注解的接口生成一个实现类。

        @Insert("insert into student(sno,sname,ssex) values(#{sno},#{name},#{sex})")
        int add(Student student);

       @Results:当数据库字段名与实体类对应的属性名不一致时,可以使用@Results映射来将其对应起来。column为数据库字段名,porperty为实体类属性名,jdbcType为数据库字段数据类型,id为是否为主键。

        @Select("select * from student where sno=#{sno}")
        @Results({
             @Result(property = "sno", column = "sno", javaType = String.class,id=true),
             @Result(property = "name", column = "sname", javaType = String.class),
             @Result(property = "sex", column = "ssex", javaType = String.class)
        })
        Student queryStudentBySno(String sno);
    目的就是为了不再写mapper映射文件

       1.1@Configuration  @Bean beans bean  

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
        xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
            http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" default-lazy-init="false">
      <bean id="student" class="domain.Student">
             <property name="id" value="11"/>
             <property name="age" value="22"/>
             <property name="name" value="jack"/>
         </bean>
         //扫描 com.item.demo包下所有的 带注解的文件
         <context:component-scan base-package=”com.item.demo”/>
    </beans>


    1.2需要导入的依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
    </dependency>     


    2四类主键类型注解

      @Component:组件注解,通用注解,被该注解描述的类将被loC容器管理并实例化,以下三个都是主键注解的细化,当不确当用哪一个时候,就可以用这个。
      @Controller:语义注解,说明当前类是MVC应用中的控制器类。将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化.
      @Service:语义注解,说明当前类是Service业务服务类。
      @Repository:语义注解,说明当前类用于业务持久层通常描述对应Dao类。

    3model注解,

    下面是在model的注解,在使用的时候,必须加上@Valid

    @Null  被注释的元素必须为null
    @NotNull  被注释的元素不能为null
    @AssertTrue  被注释的元素必须为true
    @AssertFalse  被注释的元素必须为false
    @Min(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Max(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Size(max,min)  被注释的元素的大小必须在指定的范围内。
    @Digits(integer,fraction)  被注释的元素必须是一个数字,其值必须在可接受的范围内
    @Past  被注释的元素必须是一个过去的日期
    @Future  被注释的元素必须是一个将来的日期
    @Pattern(value) 被注释的元素必须符合指定的正则表达式。
    @Email 被注释的元素必须是电子邮件地址
    @Length 被注释的字符串的大小必须在指定的范围内
    @NotEmpty  被注释的字符串必须非空
    @Range  被注释的元素必须在合适的范围内

     

    4注解

      @ResponseBody:它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端。对于Map返回则是JSON String,对于String则仍然是String。

      @RestController:=@Controller + @ResponseBody。

      @RequestMapping:在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求。【@RequestMapping(value = "/add", method = RequestMethod.GET)/

    @RequestMapping(value = "/add"),指定请求方式之后只能额根据指定请求来,比如get。如果不写。则get和post都可以 @GetMapping("/add")@PostMapping("/add")】

      @Primary:常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary 的作用就出来了。只要被@Praimary标记,则spring ioc会自动去使用这个。

      @Autowired 注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,如下

    <property name="属性名" value=" 属性值"/>    

         @CrossOrigin 启用CORS(默认情况下,@CrossOrigin允许在@RequestMapping注解中指定的所有源和HTTP方法),其中@CrossOrigin中的2个参数: origins: 允许可访问的域列表 maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。@CrossOrigin(origins = "http://localhost:9999", maxAge = 3600) 参考

      @TableLogic 实体类中属性加上@TableLogic,调用BaseMapper的deleteById(id)或者调用IService的removeById(id); 就会去修改值,而不是删除。同时数据库中字段的值必须存在(比如,默认,0未删除、1删除,如果字段没有0则修改失败,必须有0才会修改为1)

     效果:
            没有@TableLogic注解调用deleteById/removeById,直接删除数据。
                SQL:delete from table where id = 1
            有注解走Update方法
                SQL:Update table set isDelete = 1 where id = 1

    @TableLogic注解参数
        value = "" 未删除的值,默认值为0
        delval = "" 删除后的值,默认值为1
        @TableLogic(value="原值",delval="改值")

     

    
    
  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/1439107348s/p/14292893.html
Copyright © 2011-2022 走看看