下面列出了怎么用org.springframework.beans.factory.config.MethodInvokingFactoryBean的API类实例代码及写法,或者点击链接到github查看源代码。
private BeanDefinitionBuilder preInvoke(Element element, Object obj, String method, Object[] args, ParserContext parserContext, boolean factory) {
Class<?> beanClass = BeanMethodInvoker.class;
if (factory) {
beanClass = MethodInvokingFactoryBean.class;
}
BeanDefinitionBuilder builder
= createBeanDefinitionBuilder(element, parserContext, beanClass);
if (obj instanceof Class) {
builder.addPropertyValue("staticMethod",
((Class<?>) obj).getName() + "." + method);
} else {
builder.addPropertyValue("targetMethod", method);
}
builder.addPropertyValue("arguments", args);
if (element != null) {
parserContext.getDelegate().parseQualifierElements(element,
builder.getRawBeanDefinition());
}
return builder;
}
@Test
public void testAspectsAreApplied() {
ClassPathXmlApplicationContext bf = newContext("aspects.xml");
ITestBean tb = (ITestBean) bf.getBean("adrian");
assertEquals(68, tb.getAge());
MethodInvokingFactoryBean factoryBean = (MethodInvokingFactoryBean) bf.getBean("&factoryBean");
assertTrue(AopUtils.isAopProxy(factoryBean.getTargetObject()));
assertEquals(68, ((ITestBean) factoryBean.getTargetObject()).getAge());
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(SecurityManager securityManager){
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(securityManager);
return bean;
}
/**
* 在方法中 注入 securityManager,进行代理控制
*/
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(new Object[]{securityManager});
return bean;
}
/**
* 在方法中 注入 securityManager,进行代理控制
*/
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(new Object[]{securityManager});
return bean;
}
@Test
public void testAspectsAreApplied() {
ClassPathXmlApplicationContext bf = newContext("aspects.xml");
ITestBean tb = (ITestBean) bf.getBean("adrian");
assertEquals(68, tb.getAge());
MethodInvokingFactoryBean factoryBean = (MethodInvokingFactoryBean) bf.getBean("&factoryBean");
assertTrue(AopUtils.isAopProxy(factoryBean.getTargetObject()));
assertEquals(68, ((ITestBean) factoryBean.getTargetObject()).getAge());
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(SecurityManager securityManager){
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(securityManager);
return bean;
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(MessageSource source) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setTargetClass(CheckUtil.class);
bean.setTargetMethod("setSource");
bean.setArguments(new Object[]{ source });
return bean;
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(MessageSource source) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setTargetClass(CheckUtil.class);
bean.setTargetMethod("setSource");
bean.setArguments(new Object[]{ source });
return bean;
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(MessageSource source) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setTargetClass(CheckUtil.class);
bean.setTargetMethod("setSource");
bean.setArguments(new Object[]{ source });
return bean;
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(SecurityManager securityManager){
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(securityManager);
return bean;
}
/**
* 修复UnavailableSecurityManagerException(详见issues#IK7C3)
*
* @param securityManager
* @return
*/
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean(SecurityManager securityManager) {
MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
bean.setArguments(securityManager);
return bean;
}
@Test
public void testAspectsAreApplied() {
ClassPathXmlApplicationContext bf = newContext("aspects.xml");
ITestBean tb = (ITestBean) bf.getBean("adrian");
assertEquals(68, tb.getAge());
MethodInvokingFactoryBean factoryBean = (MethodInvokingFactoryBean) bf.getBean("&factoryBean");
assertTrue(AopUtils.isAopProxy(factoryBean.getTargetObject()));
assertEquals(68, ((ITestBean) factoryBean.getTargetObject()).getAge());
}
@Bean
public MethodInvokingFactoryBean setSecurityManager() {
MethodInvokingFactoryBean factoryBean = new MethodInvokingFactoryBean();
factoryBean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
factoryBean.setArguments(new Object[] { securityManager() });
return factoryBean;
}
@Bean
public MethodInvokingFactoryBean addProvider()
{
MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean();
methodInvokingFactoryBean.setStaticMethod( "java.security.Security.addProvider" );
methodInvokingFactoryBean.setArguments( new BouncyCastleProvider() );
return methodInvokingFactoryBean;
}
@Override
protected Class<?> getBeanClass(Element element) {
return MethodInvokingFactoryBean.class;
}
@Override
protected Class<?> getBeanClass(Element element) {
return MethodInvokingFactoryBean.class;
}