zoukankan      html  css  js  c++  java
  • [原]spring学习笔记3.简单的开始2

    转载请注明出处.谢谢
    现在采用spring的话会怎么样呢.(whyspring2的代码)
    这时候,就不需要UserDaoFactory类
    而UserManager类修改成:
    注意看:不需写单例了,也不用建工厂,只需要简简单单的把你需要的元素(如本例中的UserDao)建好,并且设置setter方法(也可以用构造方法,但不推荐).接下来的new 等等事情就交给spring来做.

     1package com.zyl.spring.manager;
     2
     3import com.zyl.spring.dao.UserDao;
     4
     5
     6public class UserManager {
     7    private UserDao userdao;//要spring new对象需要用构造方法.或者使用setter方法(推荐使用)
     8   // UserManager类实例化的时候.UserManager中依赖的东西比如UserDao通过setter和配置文件帮你实例化.(这就是依赖注入)
     9    
    10    public void save(String username,String password){
    11        userdao.save(username, password);
    12    }

    13    
    14    public void delete(String userid){
    15        
    16    }

    17    
    18    
    19    
    20    public void update(String username,String password){
    21        
    22    }

    23
    24    public UserDao getUserdao() {
    25        return userdao;
    26    }

    27
    28    public void setUserdao(UserDao userdao) {
    29        this.userdao = userdao;
    30    }

    31}

    32


    配置文件中:

     1<?xml version="1.0" encoding="UTF-8"?>
     2<beans
     3    xmlns="http://www.springframework.org/schema/beans"
     4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     5    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
     6<!-- 以下注册所需要的元素  spring通过配置文件可以很好的管理你的对象. 在类中定义setter,sping可以帮忙你注入对象-->    
     7<bean id="userDao4Mysql567" class="com.zyl.spring.dao.UserDao4Mysql"/>
     8<bean id="userDao4Oracle123" class="com.zyl.spring.dao.UserDao4Oracle"/>
     9
    10<bean id="userManager5566" class="com.zyl.spring.manager.UserManager">
    11  <property name="userdao" ref="userDao4Oracle123" />
    12
    13</bean>
    14</beans>

    bean id是可以随便取名的,但是在所有使用的xml文件中,bean id不可以重复.
    class就是bean id所实际代表的类的路径咯
    在第7.8两行配置UserDao的2个实现类
    在第10行,配置UserManager类.UserManager类中有属性private UserDao userdao;
        在第11行通过property属性注册它,注意property name的值是UserManager类中定义变量时使用的变量名哦.
         而ref 属性就是指向bean id名相同的那个类咯.这个完成的功能是什么? 不要告诉我,你不知道.回忆下上一个项目吧.
        这样如果你要修改引用,在ref中修改就可以了.注意,它的值是bean id. 当然它也可以是其他的东西.
    接下来是client的代码:
    配置的东西呢,大概就是让spring去xml中找咯
    然后通过UserManager的实例从factory中取得bean id为userManager5566的类 (这里要转型 )
    接下来就可以用了.

    package com.zyl.spring.client;

    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.zyl.spring.manager.UserManager;


    public class Client {

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            
    //通过配置文件初始化bean工厂 
            BeanFactory factory =new ClassPathXmlApplicationContext("applicationContext.xml");//加上配置文件xml的名字
            
    //通过bean工厂得到相应的对象(UserManager)    
            UserManager userManager=(UserManager)factory.getBean("userManager5566");//即为xml中配置的id名
            
            userManager.save(
    "111""pa");
        }


    }


    接下来,让我们见证奇迹的一刻:(偶尔模仿一下刘谦,关注他有2年了,今年他也上春晚:) )
    打印的效果是一样的. here is mysql
    修改引用的话,在xml中修改ref就可以了. 先到这里吧. 不写了.吃点东西.好饿.生日的时候不能饿肚子.

  • 相关阅读:
    Express 框架中 使用ejs
    Nodejs操作MongoDB数据库
    MongoDB基础操作
    node中的包、npm和模块
    background
    animation
    transition
    transform
    【SpringCloud】各种组件的更新情况
    【SpringCloud】版本选择
  • 原文地址:https://www.cnblogs.com/redcoatjk/p/3562436.html
Copyright © 2011-2022 走看看