SSM依赖注入
学习SSM框架,该框架对于bean的管理类更为复杂、也更加细化,在学习SSM之前,对于使用的依赖直接new一个出来就可以了,但也得益于所做的项目是小型的,对于大型、复杂的项目使用SSM框架是一种很好的选择。
1、setter注入和构造器注入
(1)应用类型-操作service层
//在bean中定义引用类型属性 并提供set方法 public class BookServiceImpl implements BookService { private BookDao bookDao; private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } @Override public void save() { System.out.println("book service save ..."); bookDao.save(); userDao.save(); } } // 在配置中使用property引用类型对象 <bean id="bookService" class="com.service.impl.BookServiceImpl"> <property name="bookDao" ref="bookDao"/> <property name="userDao" ref="userDao"/> </bean>
(2)简单类型-操作dao层
//在bookDao中进行配置 public class BookDaoImpl implements BookDao { private int connectionNum;//连接数量 private String connectionName;//连接名称 public void setConnectionNum(int connectionNum) { this.connectionNum = connectionNum; } public void setConnectionName(String connectionName) { this.connectionName = connectionName; } @Override public void save() { System.out.println("book dao save ..."+connectionNum+","+connectionName); } } //在配置文件中进行bean的配置 <bean id="bookDao" class="com.dao.impl.BookDaoImpl"> <property name="connectionNum" value="10"/> <property name="connectionName" value="mysql"/> </bean>
2、构造器注入
二、构造器注入 与setter注入有很大程度的相似,将setter方法换成构造函数 • 在bean中定义构造方法 public class BookServiceImpl implements BookService { private BookDao bookDao; private UserDao userDao; public BookServiceImpl(BookDao bookDao, UserDao userDao) { this.bookDao = bookDao; this.userDao = userDao; } @Override public void save() { System.out.println("book service save ..."); bookDao.save(); userDao.save(); } } • 在配置文件中进行配置,注意bean中标签名的变化 <bean id="bookDao" class="com.dao.impl.BookDaoImpl"> <constructor-arg name="connectionNum" value="100"/> <constructor-arg name="dataName" value="mysql"/> </bean> <bean id="userDao" class="com.dao.impl.UserDaoImpl"/> <bean id="bookService" class="com.service.impl.BookServiceImpl"> <constructor-arg name="bookDao" ref="bookDao"/> <constructor-arg name="userDao" ref="userDao"/> </bean> 这里面的name指的是构造函数中参数的名称,耦合度较高,可以将name换成type,或者将name换成index。直接使用名称或者使用索引较好
3、依赖自动装配

浙公网安备 33010602011771号