SSH入门系列12:spring注入的第一个程序
SSH入门系列12:spring注入的第一个程序
ORZ你好 发表于3个月前
SSH入门系列12:spring注入的第一个程序
  • 发表于 3个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

1如何开发一个Spring程序

   通过spring获取对象,首先把对象注册到对象容器,然后在对象容器中获得对象。

具体步骤如下:

 1):导入相关架包  必须的有spring.jar 以及commons-logging.jar

 2):编写实体类


public class girl {
   private String girlName;

public String getGirlName() {
    return girlName;
}

public void setGirlName(String girlName) {
    this.girlName = girlName;
}
   
}

3):在spring的配置文件里applicationContext里做bean对象的注册。

  <bean  id="girl"  class="com.spring.bean.girl">
        <property name="girlName">
        <value>秋.张</value>
        </property>
    </bean>

4):在测试类通过spring来获取刚刚注册的对象

public static void main(String[] args) {
        // 用ClasspathXmlApplicationContext来加载xml内容
           ApplicationContext  ac  = new  ClassPathXmlApplicationContext("applicationContext.xml");
           girl girl =(girl)ac.getBean("girl");
           System.out.println(girl.getGirlName());
    }

spring的注入问题

所谓的注入,就是在spring中如何注册对象(构建对象的方式)同时需要的时候直接定义即可,无需在new一个

1)属性注入:在构建对象时加入属性值

  <bean  id="girl"  class="com.spring.bean.girl">
        <property name="girlName">
        <value>秋.张</value>
        </property>
    </bean>

2)构造器的注入:

girl.java添加如下含参方法

public girl(String _name){
    this.girlName = _name;
}

public girl(){
    
}

注:这里添加完含有参数的构造器,一定要新建一个无参的构造器。因为定义完含参的构造器无参的构造器会失效.

applicationContext.xml  bean中添加如下内容:

   <bean id="girl2"  class="com.spring.bean.girl">
      <constructor-arg  type="java.lang.String" value="范冰冰"></constructor-arg>

    <!-- 如果还有参数,则需要类似配置 -->
    <!-- <constructor-arg type="java.lang.Integer" value="1"></constructor-arg>
    -->
   </bean>

3:如果属性是类似list之类的集合,数据这应该如下注入:

 private  List<String>  hobbies;

get set方法。。。。

      <bean  id="girl3"  class="com.spring.bean.girl">
        <property name="girlName">
        <value>佛丁</value>
        </property>
        <property name="hobbies">
        <list>
        <value>吃饭</value>
        <value>睡觉</value>
        </list>
        </property>
    </bean>

测试代码如下:
   girl girl3 =(girl)ac.getBean("girl3");
    for (String s : girl3.getHobbies())

        {
           System.out.println(s);
            }

4:如果属性是map之类的<key,value>之类的形式

     private Map<String,Integer> score;

<bean id="girl4" class="com.spring.bean.girl">
        
        <property name="score">
            <map>
                <entry>
                    <key>
                        <value>数学</value>
                    </key>
                    <value>78</value>
                </entry>

                <entry>
                    <key>
                        <value>英語</value>
                    </key>
                    <value>87</value>
                </entry>
            </map>
        </property>
    </bean>

测试部分如下:

    girl girl4 = (girl)ac.getBean("girl4");
            //Map是通过set类型进行解析的
            Set<String> set = girl4.getScore().keySet();
            Iterator<String> keyits = set.iterator();
            while (keyits.hasNext()) {
                String key = keyits.next();
            //    System.out.println(key);
            //System.out.println(girl4.getScore().get(key));
           Object value = girl4.getScore().get(key);
             System.out.println("科目是:"+key+",分数是:"+value);
                
                
            }

 

其实spring还提供了一种简化的注入方式,

共有 人打赏支持
粉丝 0
博文 13
码字总数 9911
×
ORZ你好
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: