目录
一、Spring概述
Spring是一个一站式轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
一站式:就是对每一层都有自己的解决方案
- web层:Spring MVC
- service层:Spring的Bean管理,Spring的声明式事务
- dao层:Spring的JDBC模板,Spring ORM模块(支持其他持久层框架)
二、 Spring底层原理
工厂+反射+配置文件
三、IOC入门程序
3.1 创建maven+Mybatis工程
3.1.1 目录结构
3.1.2 导入依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<!--测试类-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--导入maven依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
3.2 编写核心文件
application.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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--创建product对象-->
<bean id="product" class="com.jc.entity.Product">
<!--使用set方式注入值-->
<property name="pid" value="50"></property>
<property name="pname" value="水杯"></property>
<property name="market_price" value="31"></property>
<property name="shop_price" value="35.6"></property>
<property name="image" value=""></property>
<property name="pdate" value="2021/06/09"></property>
<property name="description" value="粉色"></property>
<!-- 利用构造注入值 -->
<!-- <constructor-arg name="name" value="小" /> -->
<!-- <constructor-arg index="0" value="小" /> -->
</bean>
</beans>
由此可见,Spring可以帮我们创建对象
3.3 测试类
TestApplication.java
public class TestApplication {
@Test
public void testIOC(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("application.xml");
Product product = (Product) applicationContext.getBean("product");
System.out.println(product);
}
}
3.4 结果演示
四、bean标签配置管理
4.1 常用标签
- id:使用了唯一约束,不能出现特殊字符
- name:无唯一约束,可以出现特殊字符
- 为了兼容Struts1,∵Struts1名称必须以 / 开头
- class:要new一个类的全路径
4.2 生命周期
- init-method:类被实例化的时候,自动调用
- destroy-methos:类被销毁时自动调用
4.3 范围管理
缺省的时候是饿汉模式