美文网首页
spring中bean的装配方式(六)

spring中bean的装配方式(六)

作者: 梦捷者 | 来源:发表于2019-09-29 22:38 被阅读0次

两种方式都需要一下jar包

一、基于XML的装配方式

1、com.itthima.assemble包下创建user.java实体类

package com.itthima.assemble;
import java.util.*;

public class User {
 private String username;
 private Integer password;
 private List<String> list;
 
 
//1、构造方法注入属性(这个时候要写一个带有所有参数的构造方法函数)
public User(String username, Integer password, List<String> list) {
    super();
    this.username = username;
    this.password = password;
    this.list = list;
}


//2setter方法注入属性(要写一个空的构造方法,并且每个类属性的set方法要写)
public User() {
    super();
}


public void setUsername(String username) {
    this.username = username;
}
public void setPassword(Integer password) {
    this.password = password;
}
public void setList(List<String> list) {
    this.list = list;
}


@Override
public String toString() {
    return "User [list=" + list + ", password=" + password + ", username="
            + username + ", getClass()=" + getClass() + ", hashCode()="
            + hashCode() + ", toString()=" + super.toString() + "]";
}
 
}

2、写相应的配置文件ApplicationContext.xml,在src的路径下进行。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    
  <bean id="user1" class="com.itthima.assemble.User">
    <constructor-arg index="0" value="tom"></constructor-arg>
    <constructor-arg index="1" value="123456"></constructor-arg>
    <constructor-arg index="2">
    <list>
    <value>"jisd"</value>
    <value>"sjdk"</value>
    </list>
    </constructor-arg>
  </bean>
  
  <bean id="user2" class="com.itthima.assemble.User">
  <property name="username" value="张三李四"></property>
  <property name="password" value="123456"></property>
  <property name="list">
  <list>
  <value>"ksdkj"</value>
  <value>"dkasj"</value>
  </list>
  </property>
  </bean>
</beans>

3、com.itthima.assemble包下创建test1.java的测试类,看是否自动为对象属性赋值(在下面可以看出成功的基于XML的构造注入和设置注入成功的装配了User实例)

package com.itthima.assemble;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ApplicationContext app2=new ClassPathXmlApplicationContext("ApplicationContext.xml");
        System.out.print(app2.getBean("user1"));
        System.out.print("\n");
        System.out.print(app2.getBean("user2"));
    }

}

二、基于annotation(注解)的装配方式

1、com.itthima.annotation包下创建UserDao.java接口类和其UserDaoImpl.java实现类

package com.itthima.annotation;

public interface UserDao {
    public void save();
}
package com.itthima.annotation;

import org.springframework.stereotype.Repository;

@Repository("userDao")
public class UserDaoImpl implements UserDao {

    public void save() {
        // TODO Auto-generated method stub
        System.out.print("你好吗");

    }

}

2、com.itthima.annotation下定义一个UserService.java业务逻辑接口类和其UserServiceImpl.java实现类

package com.itthima.annotation;

public interface UserService {
    public void save();
}

package com.itthima.annotation;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource(name="userDao")
    private UserDao userDao;
    public void save() {
        // TODO Auto-generated method stub
  this.userDao.save();
  System.out.print("userserviece.....save...");
    }

}

3、 com.itthima.annotation下编写UserController.java的控制类

package com.itthima.annotation;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

@Controller("userController")
public class UserController {
  @Resource(name="userService")
    private UserService userService;
  public void save(){
      
      this.userService.save();
      System.out.print("userController....save");
  }
}

4、com.itthima.annotation下编写beans.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
        
        <context:component-scan base-package="com/itthima/annotation"/>
</beans>

5、编写测试类test.java,运行即可

package com.itthima.annotation;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String path="com/itthima/annotation/beans.xml";
        ApplicationContext app2=new ClassPathXmlApplicationContext(path);
        
        UserController userc=(UserController)app2.getBean("userController");
        userc.save();
    }

}

相关文章

网友评论

      本文标题:spring中bean的装配方式(六)

      本文链接:https://www.haomeiwen.com/subject/aefnyctx.html