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