随笔 - 217  文章 - 4  评论 - 4  阅读 - 23587

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、依赖自动装配

 

posted on   跨越&尘世  阅读(126)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
历史上的今天:
2021-07-26 自学Java第二十四课
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示