学习SSM框架第四天

发布时间:2024年01月16日

学习目标:

基于XML三层架构开发小实验


学习时间:

学习SSM框架第四天
周三下午

开始实验前需要理解的几个知识点:

0.🍖生成对象方法

a.使用静态工程类

b.实例工厂类

c.空构造方法(IOC)+所有属性的set方法(DI)或者通过带所以参数的构造方法

说明:IOC与DI的核心功能
IOC:配置Bean将Java类配置到Spring容器当中。
因为我们使用的是空构造方法,生成的属性全是空的。
所以需要
DI:选择将容器中适配的对象装配到🍖对象的属性中


1.🍖基于XML
使用到:Java类+配置文件
生成对象方法:可以用个第0点的所有方法,与第二基于注解不同的地方在于配置文件。

如何实现:


2.🍖基于注解(自动装配) 梦幻联动😉:一般使用注解,基本就要用到自动装配

使用到:Java类(【属性、方法、类上面添加注解】)+配置文件【相对于基于XML,这里的更为简洁】
生成对象方法:可以用个第0点的所有方法,与第一基于XML不同的地方在于配置文件,多了注解。

6大常用注解与解释
IOC(控制反转):将类配置到Container中
@Component 如果不清楚该组件是哪一层,直接使用@Component,比较简单。
可以替代@Repository@service@controller

@Repository@service@controller
默认对象的名(id)类名的首字母小写


DI(依赖注入):在容器中挑选最合适的对象,注入到IOC生成的对象当中。

@Resource (name=容器
@AutoWired 按照类型来注入(假如容器中有多个同类的对象,需要和@Qualified来联动,用来直接按名称来确定注入哪一个对象)


3.🍖

实验内容:

提示:这里可以添加要学的内容

1、 新建项目,导入相对于的jar包,创建包
在这里插入图片描述

2、 代码实操:
a.创建用户类

package cn.domain;

public class User {

}

b.创建接口

package cn.dao;

import cn.domain.User;

public interface UserDao {
	User login();

}

c.重写接口里的方法

package cn.dao.imp;


import cn.dao.UserDao;
import cn.domain.User;

public class UserDaoImp  implements UserDao{

	@Override
	public User login() {
		System.out.print("获取dataSource-连接数据库,访问数据....");
		return new User();
	}

}

d.生成空构造方法和set方法

package cn.service.imp;

import cn.dao.UserDao;
import cn.domain.User;
import cn.service.UserService;

public class UserServiceImp implements UserService {

	private UserDao userDao;
	
	
	public UserServiceImp() {
		super();
	}

	@Override
	public String toString() {
		return "UserServiceImp [userDao=" + userDao + "]";
	}

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	@Override
	public User login(String username, String password) {
		// TODO Auto-generated method stub
		return userDao.login();
	}

}

3、 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">
	<!-- <bean id="scope" class="com.itheima.scope.Scope" scope="singleton"/> -->
	
	<bean id = "userDao" class = "cn.dao.imp.UserDaoImp"></bean>
	
	<bean id = "userService" class = "cn.service.imp.UserServiceImp">
		<property name = "userDao" ref="userDao"></property>
	</bean>
	
	<bean id = "userAction" class = "cn.web.UserAction">
	<property name = "userService" ref="userService"></property>
	</bean>
	
<!--
基于XML三层架构
接口 类 构造方法+set 方法
配置文件bean 注入对应的对象

-->
	
	
	
</beans>

4、 新建测试类测试

package cn;

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

import cn.web.UserAction;

public class Test3Layer {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String file = "applicationContext.xml";
		ApplicationContext ac = new ClassPathXmlApplicationContext(file);
		UserAction action = ac.getBean("userAction",UserAction.class);
		action.checkUser("admin", "123");
	}

}

实验结果如下:
在这里插入图片描述


学习产出:

一份实验报告

文章来源:https://blog.csdn.net/qq_43499381/article/details/109077949
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。