Spring学习日志
spring尚硅谷学习地址:https://www.bilibili.com/video/BV1Vf4y127N5
本来是想说用尚硅谷课程的学习日志,省得自己打字,但是那样终究是不扎实。
用费曼学习法还是比较好点,当初学java的时候,我边写边记边教别人,我就记得很牢
年轻人要脚踏实地,要讲武德
1.对于Spring整体的理解
spring使用javaBean来解决企业级开发,主要概念有Aop(面向切面编程)和IOC(控制反转)。是一个容器。
跟springMVC的关系是 spring是springMVC的父容器
IOC:控制反转的概念
控制反转是指创建对象交给容器来完成,交给spring来管理
使用了java反射机制
IOC的两大接口
1.BeanFactory:基本接口 spring内部开发者使用 ,懒加载,用的时候才加载
2.ApplicationContext:饿汉式加载,给应用开发者用的,是BeanFactory的子接口
Aop:面向切面编程
可以不修改源代码进行功能增强
2.使用spring
首先下载spring的jar包,并且有下图
由上图我们需要加载核心包即 Beans Core Context Expression 并且需要额外加一个logging包
并且在idea内添加依赖,即可跑测试
3.介绍Bean在spring容器中的管理方式(xml) 手动装配
第一步我们写好一个user类
public class User
{
public void add(){
System.out.println("我加了");
}
}
然后我们在src包下 写xml文件 bean1.xml
<!-- 配置user对象创建-->
<bean id="user" class="com.xyq.spring_1.User"></bean>
并且写一个测试类
@Test
public void testAdd(){
//1.加载spring配置文件
// 这个函数和类就用到了spring框架
// IOC两大接口 1. BeanFactory 2. Applicationcontext
ApplicationContext context =new ClassPathXmlApplicationContext("bean1.xml");
// 2.获取配置 创建文件
User user = context.getBean("user", User.class);
System.out.println(user);
user.add();
}
我们可以发现context的引用方式可以有1. BeanFactory 2. Applicationcontext两种,并且我们要注意好xml文件的地址
这个也是spring管理bean的基本流程
① 使用set 来给bean赋值
有如下Book类
public class Book {
private String bname;
private String author;
private String address;
public void setBname(String bname) {
this.bname = bname;
}
public void setAuthor(String author) {
this.author = author;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Book{" +
"bname='" + bname + '\'' +
", author='" + author + '\'' +
"address" +" " +address+
'}';
}
public String getBname() {
return bname;
}
public String getAuthor() {
return author;
}
}
xml 文件
<bean id ="book" class ="com.xyq.spring_1.Book">
<property name="author" value="xyq"></property>
<property name="bname" value="wdnmd"></property>
<!--<property name="address" >-->
<!--<null/>-->
<!--</property>-->
<property name="address" >
<value> <![CDATA[<<南京>>]]>
</value>
</property>
</bean>
测试类
@Test
public void test2(){
//1.加载spring配置文件
// 这个函数和类就用到了spring框架
// IOC两大接口 1. BeanFactory 2. Applicationcontext
ApplicationContext context =new ClassPathXmlApplicationContext("bean1.xml");
// 2.获取配置 创建文件
Book book = context.getBean("book", Book.class);
System.out.println(book);
}
即 用 property 来赋值 并且要有对应的set方法,并且要获取得到其引用
这样就可以跑通测试了