Spring研究 (2) 添加Bean

原创 2004年08月29日 10:44:00

在上次的MVC基础上,我们准备给Controller增加Model,为此创建一个Account Bean Class:

public class Account implements java.io.Serializable {
    private String username;
    private String password;

    public String getUsername() { return this.username; }
    public void setUsername(String username) { this.username = username; }

    public String getPassword() { return this.password; }
    public void setPassword(String password) { this.password = password; }
}

然后修改SpringappController:

public class SpringappController implements Controller {
    private Account account;
    public Account getUserAccount() { return this.account; }
    public void setUserAccount(Account account) { this.account = account; }

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        return new ModelAndView("view.jsp", "model", account.getUsername());
    }
}

为了向SpringappController注入Bean,我们修改配置文件springapp-servlet.xml:

    <!-- 申明一个Account Bean -->
    <bean id="adminAccount" class="Account">
        <property name="username">
            <value>administrator</value>
        </property>
        <property name="password">
            <value>1234567</value>
        </property>
    </bean>
    <bean id="springappController" class="SpringappController">
        <!-- 注入到Controller -->
        <property name="userAccount">
            <ref bean="adminAccount" />
        </property>

    </bean>

OK,运行Ant,然后启动Tomcat,结果输出:

Result: administrator

注入成功!但是在Controller中放一个Account肯定是不合逻辑的,我们准备做一个用户登录功能,为此创建一个AccountManager Bean:

public class AccountManager implements java.io.Serializable {
    Account getAccount(String username, String password) {
        // TODO...
        Account account = new Account();
        account.setUsername(username);
        account.setPassword(password);
        return account;
    }
}

然后把SpringappController改为:

public class SpringappController implements Controller {
    private AccountManager manager;
    public AccountManager getManager() { return this.manager; }
    public void setManager(AccountManager manager) { this.manager = manager; }


    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        return new ModelAndView("view.jsp", "model",
            manager.getAccount(username, password).getUsername());
    }
}

修改springapp-servlet.xml:

    <bean id="accountManager" class="AccountManager" />
    <bean id="springappController" class="SpringappController">

        <property name="manager">
            <ref bean="accountManager" />
        </property>

    </bean>

编译,运行,输入:http://localhost:8080/springmvc/hello.c?username=xuefeng&password=1234

结果显示:

Result: xuefeng

OK,现在只要创建一个html form,Post到Controller然后在AccountManager中验证Username和Password就可以了。

基于ABP添加一个简单的功能

-
  • 1970年01月01日 08:00

java创建bean并注册到spring中

从Spring 3.0开始,增加了一种新的途径来配置Bean Definition,这就是通过Java Code配置Bean Definition。        与XML和Annotati...
  • u012100371
  • u012100371
  • 2017-09-11 08:55:45
  • 687

Spring Boot 使用Java代码创建Bean并注册到Spring中

从 Spring3.0 开始,增加了一种新的途经来配置Bean Definition,这就是通过 Java Code 配置 Bean Definition。 与Xml和Annotation两种配置方...
  • catoop
  • catoop
  • 2016-01-22 00:13:35
  • 48954

Spring:创建Bean的几种方式

Spring创建工厂的三种方式
  • VipMao
  • VipMao
  • 2016-06-04 17:42:21
  • 7104

spring是如何加载bean的?

我debug的是3.1.1版本的spring,因为刚好一个项目中用的是这个版本的源码,所以就直接拿这个版本的debug一下,了解一下spring加载bean的过程。 debug用的测试代码 测试类...
  • u012247397
  • u012247397
  • 2017-04-29 19:28:02
  • 1891

spring加载bean的过程

首先,我在这里举个demo,大致演示一下怎么获取配置文件中的bean: 一个applicationContext.xml配置文件,这个不可少; 一个bean,这里我没用接口,直接用一个普通的类做为...
  • hsj1213522415
  • hsj1213522415
  • 2017-10-06 20:01:05
  • 154

<em>Spring</em> <em>Bean</em> 加载顺序 .

举报人: 被举报人: zhousenshan 举报的资源分: 3 *类型: *详细原因: 取  消 提  交 <em>Spring</em> <em>Bean</em> 加载顺序 . 3积分 立即下载 ...
  • 2018年04月07日 00:00

Spring Bean 创建过程

0. 通常,无论是DispatcherServlet、ContextLoaderListener还是ClassPathXmlApplicationContext,首次实例化bean的入口并不是在每次调...
  • sadfishsc
  • sadfishsc
  • 2016-03-31 16:40:17
  • 3484

看看Spring的源码——Bean加载过程

首先Web项目使用Spring是通过在web.xml里面配置org.springframework.web.context.ContextLoaderListener初始化IOC容器的。 liste...
  • u013684110
  • u013684110
  • 2016-07-07 15:48:41
  • 2820

Spring中初始化bean和销毁bean的时候执行某个方法的详解

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过注解@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进...
  • dreamsunday
  • dreamsunday
  • 2015-12-03 12:57:08
  • 4711
收藏助手
不良信息举报
您举报文章:Spring研究 (2) 添加Bean
举报原因:
原因补充:

(最多只允许输入30个字)