Spring框架学习Day01
Posted 龚喜发财+1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架学习Day01相关的知识,希望对你有一定的参考价值。
文章内容为某站遇见狂神说视频学习内容
1.简介
spring框架是为了简化企业级开发
2.优点
- 开源的免费的框架(容器)
- 轻量级的,非入侵式的框架
- 控制反转(IOC) 面向切面编程(AOP)
- 支持事务的处理,对框架整合的支持
3.组成
4拓展
springBoot和springCloud
5.IOC理论
以前例子
UserDao
public interface UserDao {
void getUser();
}
UserDaoImpl
public class UserDaoImpl implements UserDao{
public void getUser(){
System.out.println("huoqushuju");
}
}
UserService
public interface UserServices {
public void getUser();
}
UserServiceImpl
public class UserServicesImpl implements UserServices{
private UserDao userdao=new UserDaoImpl();
public void getUser(){
userdao.getUser();
}
Mytest
public static void main(String[] args){
//用户实际调用的是业务层,不需要实际接触dao层
UserServices userservices=new UserServicesImpl();
userservices.getUser();
}
如果增加实现类,则需要修改业务层的代码,在真实项目中的代码量庞大,修改一次的代价十分昂贵。
可以使用一个Set接口实现,在UserServiceImpl中,修改代码为
private UserDao userdao;
//利用set进行动态实现值得注入
public void setUserdao(UserDao userdao) {
this.userdao = userdao;
}
public void getUser(){
userdao.getUser();
}
在Mytest中修改代码为
public static void main(String[] args){
//用户实际调用的是业务层,不需要实际接触dao层
UserServices userservices=new UserServicesImpl();
((UserServicesImpl) userservices).setUserdao(new mysqlDaoImpl());
userservices.getUser();
}
之前,程序是主动创建对象,控制权在程序员手里
使用Set注入后,程序不再具有主动性,而是变成被动的接受对象,程序员不再需要管理对象的创建,系统耦合性降低,可以专注业务的实现,这是IOC的原型!
IOC本质:
没有IOC的程序中,我们使用面向对象编程,对象的创建与对象之间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,而使用控制反转之后,将对象的创建转移给第三方,也就是说获得依赖对象的方式反转了
可以采用两种方式(1)xml文件进行配置(2)采用注解的方式
6.代码示例hellospring
Hello类、
package com.xu.pojo;
public class Hello {
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
@Override
public String toString() {
return "Hello{" +
"str='" + str + '\\'' +
'}';
}
}
(1)基于xml配置元数据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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--使用Spring来创建对象,在Spring中这些都称为bean
bean=对象 就是new了一个hello()
原来 类型 变量名=new 类型()
Hello hello=new Hello()
现在 bean中的id就是变量名 class就是new的对象
property就是给对象中的属性设置值
这个过程就是控制反转-->
<bean id="hello" class="com.xu.pojo.Hello">
<property name="str" value="String">
</property></bean>
</beans>
(2)实例化容器
在mytest类中:
//获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
(3)使用容器
//我们的对象都在Spring容器中管理了,我们要使用,直接从里面去出来就可以啦1
Hello hello=(Hello) context.getBean("hello");
System.out.println(hello.toString());
7.总结
是实现不同的操作,只需要在xml配置文件中进行修改,也就是说
IOC:对象由spring创建,管理,装配!
以上是关于Spring框架学习Day01的主要内容,如果未能解决你的问题,请参考以下文章
Day644.Spring框架开发双刃剑 -Java业务开发常见错误