Spring
1.简介
1.1简介
1.常见的框架:
2.常见的依赖:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
</dependencies>
3.Spring优点:
4.Sping最重要的优点”
1.2组成
1.3扩展
1.spring的开发流程
2.IOC控制反转(原型的推导)
3.控制反转的本质
IOC:单词就是I是反转,O是of, C是控制的单词。
没有强耦合了,实现了模块的分解。
4.配置方式:xml,注解或者是不用配置。
1.4案例-hello-Spring
pojo中
package com.hou.pojo;
public class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Hello{" +
"name='" + name + '\'' +
'}';
}
}
resource种
<?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">
<!--bean = 对象-->
<!--id = 变量名-->
<!--class = new的对象-->
<!--property 相当于给对象中的属性设值-->
<bean id="hello" class="com.hou.pojo.Hello">
<property name="name" value="Spring"/>
</bean>
</beans>
test
import com.hou.pojo.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Mytest {
public static void main(String[] args) {
//获取spring上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//我们的对象下能在都在spring·中管理了,我们要使用,直接取出来就可以了
Hello hello = (Hello) context.getBean("hello");
System.out.println(hello.toString());
}
}
bean = 对象
id = 变量名
class = new的对象
property 相当于给对象中的属性设值
核心用set注入
第一个文件中
<?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">
<bean id="userdaomysql" class="com.hou.dao.UserDaoMysqlImpl"></bean>
<bean id="userServiceImpl" class="com.hou.service.UserServiceImp">
<!--ref引用spring中已经创建很好的对象-->
<!--value是一个具体的值-->
<property name="userDao" ref="userdaomysql"/>
</bean>
</beans>
思考:谁来创建的对象?
beans.xml来创建。
1.5IOC创建对象的方式
1.使用无参数的构造。
2.假设我们使用有参数的构造创建对象。详见代码ioc2
- 下标赋值
- 类型创建
- 通过参数
下标赋值
<bean id="user" class="com.hou.pojo.User">
<constructor-arg index="0" value="hou"/>
</bean>
类型赋值
<bean id="user" class="com.hou.pojo.User">
<constructor-arg type="java.lang.String" value="dong"/>
</bean>
通过参数
<bean id="user" class="com.lxz.pojo.User">
<constructor-arg name="name" value="猴子"/>
</bean>
Spring类似于婚介网站!
你想不想要,对象都在里面。注册bean之后用不用被实例化。
1.6Spring的配置说明
1.起别名。代码参考ioc3。
<alias name="user" alias="myuser"></alias>
用别名可以获取bean对象,不用别名也可以去获取bean对象。
也可以用name去获取别名。
<bean id="user" class="com.lxz.pojo.User" name="myuser">
2.import
一般用于团队开发用,
假设bean1和bean2和bean3是不同的人员开发的,需要进行合并导入,应该怎么做?就可以在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">
<import resource="bean1.xml"/>
<import resource="bean2.xml"/>
<import resource="bean3.xml"/>
</beans>
参考代码ioc3。
1.7什么是bean
就理解成类就行了。