zoukankan      html  css  js  c++  java
  • Spring静态工厂和扫描器

     1 <!--*****************************************************************************************-->
     2         <!--静态工厂方法
     3             首先建立一个静态工厂类
     4             
     5             public class StaticFactory
     6             {
     7                 private static Map<String, persion> maps = new HashMap<String, persion>();
     8                 
     9                 static{
    10                     maps.put("p1", new persion());
    11                     maps.put("p2", new persion());
    12                 }
    13                 public static persion getpersion(String name)
    14                 {
    15                     return maps.get(name);
    16                 }
    17             }
    18     -->
    19         <bean id = "staticpersion" class = "com.wsl.StaticFactory" factory-method="getpersion">
    20             <constructor-arg value = "p2"></constructor-arg><!--传入getpersion的参数-->
    21         </bean>
    22         <!--获取实例
    23             persion sPersion = (persion) ctxApplicationContext.getBean("staticpersion");
    24         -->
    25         
    26     <!--*****************************************************************************************-->
    27         <!--注解
    28                 注解扫描器
    29                 @Component    基本注解
    30                 @Respository  持久层注解
    31                 @Service      业务层组件
    32                 @Controller      表现层组件
    33         在当前的spring中 , 这4类注解可以混用, 因为spring无法区分一个类属于哪一层。
    34         
    35         需要在xml配置文件中导入context插件
    36         在此之前,需要配置spring扫描器来扫描哪些包
    37         1)<context:component-scan>语句加入
    38         
    39         <context:component-scan base-package="com.wsl.anotation"
    40             resource-pattern="/*.class"><!--只扫描特定目录,此例只扫描 com.wsl.anotation下的类,此时不包含子包-->
    41         <!--</context:component-scan>
    42         -->
    43         
    44         
    45         <!--  autowire resource inject
    46         @Component
    47         public class annonationservice 
    48         {
    49 
    50             @Autowired
    51             annotation annotation;
    52             
    53             @Autowired
    54             @Qualifier("annotation") //用于指定实现类,具体来说就是,当annotation是一个接口
    55                                      //并且, 系统存在两个或以上的类都实现了这个街口,并且都成为
    56                                      //了springBean的情况下,接口变量就必须指定一个实现类。
    57             annotation annotation2;
    58 
    59             @Autowired//使用设置方法自动装配,跟上面一样,当接口存在多个实现类的时候,那么变量名需写成实现的类名
    60                       //自然设置方法构造出来也就是符合条件了
    61                       //比如接口annotation , 实现类 annotation2
    62                       //在申请接口时annotation annotation2;就可以自动装配annotation2的实现到接口了
    63             public void setAnnotation2(annotation annotation2) {
    64                 this.annotation2 = annotation2;
    65             }
    66 
    67             public void show()
    68             {
    69                 System.err.println(annotation);
    70                 System.out.println(annotation2);
    71             }
    72         }
    73         
    74         resource inject类似 
    75         -->
    76         
  • 相关阅读:
    mysql登录和连接 权限
    No package mysql-server available.
    rails开发demo(一)搭建环境
    chrome和搜狗浏览器的js问题
    setInterval setTimeout clearInterval
    几道面试题
    du df 查看文件和文件夹大小
    win7开启休眠功能
    ssh key scp命令 scp无密码传输
    dd 生成指定大小文件
  • 原文地址:https://www.cnblogs.com/wslblog/p/4798259.html
Copyright © 2011-2022 走看看