82 |
83 | Java 构造 |
84 | 描述 |
85 |
86 |
87 |
88 | Class fields |
89 | 将值直接注入类属性。这属性
90 | 可以是 private 但一定不能是 final 。除了上面提到的代理类型方法外,不能用在单例范围。 |
91 |
92 |
93 | Constructor parameters |
94 | 构造函数会调用注入值。如果多个构造函数其中存在一个最可注的射参数则将被调用。除了上面提到的代理类型方法外,不能用在单例范围。
95 | |
96 |
97 |
98 | Resource methods |
99 | 资源的方法(带有 @GET, @POST, ...注解)包含的参数可以在执行时注射。可以在任何范围使用。
100 | |
101 |
102 |
103 | Sub resource locators |
104 | 子资源的方法(带有 @GET, @POST, ...注解)包含的参数可以在执行时注射。可以在任何范围使用。
105 | |
106 |
107 |
108 | Setter methods |
109 | 值可以被注入 setter 方法将初始化属性,而不是直接将值注入属性的。注射只能用于 @Context 注释。这意味着它不能使用,例如将查询参数注入,但可以用在请求注入。setter 方法将会在对象创建后执行,且只有一次。该方法的名称不必要有一个 setter 模式。除了上面提到的代理类型,不能在单例范围内使用。
110 | |
111 |
112 |
113 |
114 | 下面的示例显示所有可能的值可以被注入的 Java 构建函数。
115 |
116 | Example 3.26. 可能注入的例子
117 |
118 | @Path("resource")
119 | public static class SummaryOfInjectionsResource {
120 | @QueryParam("query")
121 | String param; // injection into a class field 注入类的属性
122 |
123 |
124 | @GET
125 | public String get(@QueryParam("query") String methodQueryParam) {
126 | // injection into a resource method parameter 注入资源的方法参数
127 | return "query param: " + param;
128 | }
129 |
130 | @Path("sub-resource-locator")
131 | public Class