Spring基础

springIOC基础

spring框架运行效率低,编写效率高,原生写法运行效率高,编写效率低
spring是分层的java SE/EE 应用 Full-stack 轻量级 开源的半成品框架,以IOC(反转控制)和AOP(面向切面编程)

框架的作用

在这里插入图片描述

spring的体系结构

底层是核心容器
Beans
Core
Cpntext
SpringEI表达式
中层技术
AOP
Aspects
应用层技术
数据访问与数据集成
Web集成
Web实现
基于Test测试
加粗样式

IOC反转控制

Ioc 全称为 Inversion of Control ,翻译为 “控制反转”,它还有一个别名为 DI( Dependency
Injection ),即依赖注入。本质的功能就是:就是由 Spring IOC 容器来负责对象的生命周期和
对象之间的关系

案例

<!--导入spring的context坐标,context依赖core、beans、expression-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>

编写Dao接口和实现类

public interface IUserDao {
void say();
}
public class UserDaompl implements IUserDao {
public void say() {
System.out.println("你好");
}
}

在pom文件中配置文件

<?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-4.0.xsd">
<bean id="user" class="com.xinzhi.service.impl.UserDaompl" />
</beans>

使用spring的API获得Bean实例

public static void main( String[] args ) {
	ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("application.xml");
	UserDaompl bean = context.getBean(UserDaompl.class);
	bean.say();
}

注解开发

示例代码

public interface IUserService {
void save();
}
public class UserServiceImpl implements IUserService {
	private IUserDao userDao;
	public void setUserDao(IUserDao userDao) {
	this.userDao = userDao;
}
public void save() {
	userDao.say();
}
}
<bean id="user" class="com.xinzhi.dao.impl.UserDaompl" />
<bean id="userService" class="com.xinzhi.service.impl.UserServiceImpl">
<property name="userDao" ref="user"/>
</bean>
public static void main( String[] args ) {
	ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("application.xml");
	UserServiceImpl bean = context.getBean(UserServiceImpl.class);
	bean.save();
}

注解开发

在这里插入图片描述
添加注解

@Component("user")
public class User {
@Value("1")
private int id;
@Value("张作榕")
private String username;
@Value("20")
private int age;
//set get 方法
}
/**
*dao层注解
*/
@Repository("userDao")
public class UserDaompl implements IUserDao {
@Autowired
private User user;
public void say() {
System.out.println(user);
System.out.println("UserDao save method running....");
}
}
/**
* service注解
*/
@Service("userService")
public class UserServiceImpl implements IUserService {
// @Autowired
// @Qualifier("userDao")
@Resource(name = "userDao")
private IUserDao userDao;
public void save() {
userDao.say();
}
}
public static void main( String[] args ) {
ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("application.xml");
UserServiceImpl bean = context.getBean(UserServiceImpl.class);
bean.save();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值