2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Conditionl @ConditionalOnXxx
17
@GetMapping
@ResponseBody
public Response get(@Xxx String xxx) {
// do something
}
HandlerMethodArgumentResolver
18
19
public class SessionAttributeArgumentResolver
implements HandlerMethodArgumentResolver {
@Override
public Object resolveArgument(
MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) throws Exception {
final HttpServletRequest servletRequest =
webRequest.getNativeRequest(HttpServletRequest.class);
final HttpSession session = servletRequest.getSession();
return retrieveSessionAttribute(session, getKey());
}
}
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(
List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(new SessionAttributeArgumentResolver(Xxx.class));
}
}
20
<—- xml configuration —->
<bean class="j.c.r.s.s.a.c.AccessConditionConfig">
<constructor-arg name=“urlPattern” value="/users/*" />
<constructor-arg name=“voter” ref="roleVoter" />
<constructor-arg name=“accessDeniedHandler” ref="handler" />
</bean>
// JavaConfig
@Bean
@Autowired
public AccessConditionConfig condition(AccessDecisionVoter voter,
AccessDeniedHandler handler) {
return new AccessConditionConfig(“/users/*”, roleVoter, handler);
}
Filter
HandlerInterceptorAdapter
AccessDecisionManager
ExceptionTranslationFilter
21
url-pattern
(RequestMapping )
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Springを用いた社内ライブラリ開発