zoukankan      html  css  js  c++  java
  • 04spring注解

    注解功能
    1)配置spring容器
    <?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.3.xsd">

    <context:annotation-config/>
    <context:component-scan base-package="com.fz.entity"/>
    </beans>
    2)注解使用
    @Component 如果不写,则使用类名小写作为名称

    @Component("uuu")

    @Data @Component
    public class Book {
    @Value("100")
    private int id;

    @Value("《mysql数据库技术》")
    private String name;
    }

    @Autowired 根据类型自动装配


    @Autowired //根据类型自动装配 byType

    @Autowired @Qualifier("user") //根据名称自动装配 byName
    private User user;

    @Resource(name="book")


    3)注解bean类方法
    注解bean类 com.entity.Db类
    ---------------------------------------------------
    @Component("db")
    public class Db {
    public void show(){
    System.out.println("dbshow");
    }
    }

    @Controller("member")
    public class Member {
    public void save(){
    System.out.println("saveok");
    }
    }

    @Service("m")
    public class Member {
    public void save(){
    System.out.println("saveok");
    }
    }

    @Repository("mm")
    public class Member {
    public void save(){
    System.out.println("saveok");
    }
    }
    4)注解单例 多例
    ---------------------------------------------------
    @Repository("mm") @Scope("singleton") 单例默认
    public class Member {

    }

    @Repository("mm") @Scope("prototype") 多实例
    public class Member {

    }

    5)注解初始化方法
    import javax.annotation.PostConstruct;
    ---------------------------------------------------
    @PostConstruct
    public void a(){
    System.out.println("初始化1");
    }

    @PostConstruct
    public void init(){
    System.out.println("初始化2");
    }

    6)注解销毁方法
    import javax.annotation.PreDestroy;
    ---------------------------------------------------
    @PreDestroy
    public void close(){
    System.out.println("退出");
    }

    @PreDestroy
    public void exit(){
    System.out.println("销毁");
    }


    7)属性注入
    -------------------------------------------------------
    @Data
    @Component("book")
    @Scope("prototype")
    public class Book {
    @Value("BS101")
    private String bid;
    @Value("java书籍")
    private String bname;
    }

    @Data @Repository("mm") @Scope("prototype")
    public class Member {
    @Resource(name="book") 此处的book 就是指定工厂中的 上的那book名@Component("book")
    相当于beans.xml 中的<property name="" ref="u"></property>
    private Book book;

    }

    @Data @Repository("mm") @Scope("prototype")
    public class Member {
    @Autowired 根据类型自动注入对象
    private Book book;
    }

    8)延迟加载
    -----------------------------------------------------------------
    单例模式是默认的,会立即加载 加上@Lazy 不自动加载,第一次使用时再加载
    @Data
    @Component @Scope("singletone") @Lazy
    public class Teacher {
    private String name;

    public Teacher() {
    System.out.println("空构造方法");
    }

    public Teacher(String name) {
    this.name = name;
    System.out.println("有参数name的构造方法");
    }
    public void info(){
    System.out.println("老师姓名:"+this.name);
    }
    }

    @Scope("prototype") 多实例,默认使用的使用时加载

    @Data @Repository("mm") @Scope("singleton") @Lazy 延迟加载,在第一次使用时加载
    public class Member {

    }

    @Data @Repository("mm") @Scope("singleton") @Lazy(false) 立即加载初始化
    public class Member {
    }

    beans.xml

    <beans default-lazy-init="true"> 所有bean都延迟实例化初始化加载

    <beans default-autowire="byName">默认注入相关属性对象

    怕什么真理无穷,进一步有一步的欢喜
  • 相关阅读:
    【题解】Killer Names($O(nlog n)$做法)
    【瞎讲】类欧几里得入土教程
    【题解】SDOI2010所驼门王的宝藏(强连通分量+优化建图)
    【题解】ARC101F Robots and Exits(DP转格路+树状数组优化DP)
    【题解】LOJ6060 Set(线性基)
    【题解】CF1056F Write the Contest(三分+贪心+DP)
    【题解】多少个$1$(exBSGS)
    【题解】幼儿园篮球题(范德蒙德卷积+斯特林+NTT)
    【题解】P1373 小a和uim之大逃离
    【题解】地精部落(DP)
  • 原文地址:https://www.cnblogs.com/Mkady/p/7201220.html
Copyright © 2011-2022 走看看