相关疑难解决方法(0)

@Scope("prototype")bean范围没有创建新bean

我想在我的控制器中使用带注释的原型bean.但是春天正在创造一个单身豆.这是代码:

@Component
@Scope("prototype")
public class LoginAction {

  private int counter;

  public LoginAction(){
    System.out.println(" counter is:" + counter);
  }
  public String getStr() {
    return " counter is:"+(++counter);
  }
}
Run Code Online (Sandbox Code Playgroud)

控制器代码:

@Controller
public class HomeController {
    @Autowired
    private LoginAction loginAction;

    @RequestMapping(value="/view", method=RequestMethod.GET)
    public ModelAndView display(HttpServletRequest req){
        ModelAndView mav = new ModelAndView("home");
        mav.addObject("loginAction", loginAction);
        return mav;
    }

    public void setLoginAction(LoginAction loginAction) {
        this.loginAction = loginAction;
    }

    public LoginAction getLoginAction() {
        return loginAction;
    }
    }
Run Code Online (Sandbox Code Playgroud)

速度模板:

 LoginAction counter: ${loginAction.str}
Run Code Online (Sandbox Code Playgroud)

Spring config.xml启用了组件扫描:

    <context:annotation-config /> …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc

120
推荐指数
5
解决办法
20万
查看次数

如何使用注释执行Spring Lookup方法注入?

有没有办法使用注释使用查找方法注入?

鉴于以下课程:

@Service
public abstract class A {


    protected abstract createB();

}
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我必须在spring applicationContext.xml中声明以下内容:

<bean id="b" class="com.xyz.B">
</bean>

<bean id="a" class="com.xyz.A">
    <lookup-method name="createB" bean="b"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

即使我正在使用,<context:component-scan base>我也必须在XML中声明它.我认为这不是一个好方法.

如何用注释做到这一点?

spring dependency-injection spring-annotations

30
推荐指数
4
解决办法
2万
查看次数