bean的装配方式有两种,构造注入和setter属性注入。

public class User {
private String username;
private String password;
private List<String> list;
//构造注入需要提供带所有参数的有参构造方法
public User(String username, String password, List<String> list) {
this.username = username;
this.password = password;
this.list = list;
}
//设置注入,需要提供无参构造方法和setter和getter方法
public User() {
} public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public List<String> getList() {
return list;
} public void setList(List<String> list) {
this.list = list;
} @Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", list=" + list +
'}';
}
} 在applicationContext.xml中的配置
<!--构造方法方式装配bean-->
<!--在这儿可以采用p名称空间的形式注入值-->
<bean id="user1" class="com.itheima.ioc.xmlzhuangpeiBean.User">
<constructor-arg index="0" value="chen"/>
<constructor-arg index="1" value="123456"/>
<constructor-arg index="2">
<list>
<value>"user1"</value>
<value>"user2"</value>
</list>
</constructor-arg>
</bean>
<!--使用设置注入方式装配bean--> <!--在这儿可以采用p名称空间的形式注入值-->
    <bean id="user2" class="com.itheima.ioc.xmlzhuangpeiBean.User">
<property name="username" value="陈红君"/>
<property name="password" value="145678"/>
<property name="list">
<list>
<value>"4679"</value>
<value>"213"</value>
</list>
</property>
</bean>
<!--例如这儿的bean可以写成这样
<bean id="user2" class="类的全限定名" p:username="小城" p:password="123"/>
--> </beans> 基于注解的装配
接口UserDao
public interface UserDao {
public void userDaoSay(); }
实现接口的USerDaoImp
@Repository("userDao")//用于数据访问层
public class UserDaoImp implements UserDao {
@Override
public void userDaoSay() {
System.out.println("这是实现userdao的方法");
}
}
接口UserService 
public interface UserService {
public void userServiceSay();
}
实现接口的UserServiceImp
@Service("userService")
public class UserServiceImp implements UserService {
@Resource(name = "userDao")//按照实例名称进行装配的
private UserDao userDao; public void userServiceSay() {
this.userDao.userDaoSay();
System.out.println("userservice to say hello world!"); }
}
控制器UserController
@Controller("userController")//控制器
public class UserController {
@Resource(name = "userService")
private UserService userService; public void userControllerSay() {
this.userService.userServiceSay();
System.out.println("userController to Say hello world!");
} /*实例化一个userController对象,调用userControllerSay()方法,userController 先调用userService里的方法
当执行到了userService,userService就去调用执行userDao中的userDaoSay()方法
* */
}
applicationContext.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-3.0.xsd"> <context:component-scan base-package="com.itheima.ioc.zhujiefangshizhuangpeiBean"/> </beans>

测试
public class annotationTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("anntationContext.xml");
UserController userController = (UserController) applicationContext.getBean("userController");
userController.userControllerSay();
}
}
												

bean的装配方式(注入方式,构造注入,setter属性注入)的更多相关文章

  1. Spring Bean自动装配有哪些方式?

    Spring 容器能够自动装配 Bean .也就是说,可以通过检查 BeanFactory 的内容让 Spring 自动解析 Bean 的协作者. 自动装配的不同模式: no - 这是默认设置,表示没 ...

  2. Spring注入值得2种方式:属性注入和构造注入

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  3. Spring学习(十八)Bean 的三种依赖注入方式介绍

    依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖.接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:•    属性注入方法• ...

  4. 【SSH系列】深入浅出spring IOC中三种依赖注入方式

    spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...

  5. spring IOC中三种依赖注入方式

    Spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则,用来消减计算机程序之间的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入 ...

  6. spring IOC中四种依赖注入方式

    在spring ioc中有三种依赖注入,分别是:https://blog.csdn.net/u010800201/article/details/72674420 a.接口注入:b.setter方法注 ...

  7. Spring 依赖注入(一、注入方式)

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  8. 转:深入浅出spring IOC中四种依赖注入方式

    转:https://blog.csdn.net/u010800201/article/details/72674420 深入浅出spring IOC中四种依赖注入方式 PS:前三种是我转载的,第四种是 ...

  9. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

随机推荐

  1. CSharp for Jupyter Notebook

    之前说有机会就说下Linux下如何搭建C#版的交互编程,今天写篇文章还债^_^ Win下比较简单,可以自己看官方文档,下面逆天带大家搭建下Linux下的环境(官方方法有问题) 在线预览:https:/ ...

  2. JavaWeb基础之Servlet简单实现用户登陆

    学习javaweb遇到了一些坑,一些问题总结下来,记个笔记. 学习servlet遇到的一些坑: servlet实现用户登陆遇到的坑解决办法: https://www.cnblogs.com/swxj/ ...

  3. A1123. Is It a Complete AVL Tree

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  4. MariaDB安装及基本配置

    MariaDB安装及基本配置(CentOS6.9) 数据库基础概念 数据库(Database, DB)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. DBMS: Database ...

  5. 第三十篇-ToolBar的使用

    效果图: 创建标题栏,将原本的Title隐藏,并在菜单栏中设置选项. 一.拖入一个ToolBar组件,并在res/values/styles.xml中将原本的标题栏隐藏,添加<item name ...

  6. 安卓手机root

    https://jingyan.baidu.com/article/ca41422ffe6b031eae99ed9a.html

  7. Gym102082 G-What Goes Up Must Come Down(树状数组)

    Several cards with numbers printed on them are lined up on the table. We’d like to change their orde ...

  8. Haproxy 安装初体验

    20180916 haproxy Haproxy简介 Haproxy是一款免费的.快速的和稳定的解决方案,提供HA和LB功能,同时对基于TCP的应用和HTTP的应用进行代理,对于流量很大的web站点来 ...

  9. logistics回归简单应用(二)

    警告:本文为小白入门学习笔记 网上下载的数据集链接:https://pan.baidu.com/s/1NwSXJOCzgihPFZfw3NfnfA 密码: jmwz 不知道这个数据集干什么用的,根据直 ...

  10. mac/Linux源码安装TensorFlow

    因为用pip命令直接下载安装会链接到google,导致打不开,比如使用pip install tensorflow碰到如下的问题.因此在本文中,主要介绍了如何通过源码进行TensorFlow的安装 $ ...