学习spring第一天
什么是spring
-
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,有Rod Johnson在其著作Exper One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。
-
Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
-
Spring的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。
-
名称说明
spring 春天 可以理解为程序员的春天到来了(之前的配置太复杂)
|–springmvc
|–springboot
|–springclould
|–spring data -
spring的核心
spring就是一个容器
IOC /DI
|-- IOC全称为:Inverse of Control
|–DI 依赖注入:全称为Dependency Injection
|-- AOP:AOP为Aspect Oriented Programming的缩写 面向切面编程 -
spring的核心
l Spring在JavaWeb三层结果中,每一层都提供了不同的解决技术。
l Web层:SpringMVC
l Service层:Spring ioc
l Dao层:Spring jdbc Template -
spring框架图
1、 以前的方法
1、使用IDEA创建spring的项目
2、创建UserService
public interface UserService {
public void add();
}
3、创建UserserviceImpl
public class UserServiceImpl implements UserService {
@Override
public void add() {
System.out.println ("打印一下…………");
}
}
4、测试访问UserService的方法(以前开发的方式)
@Test
public void test(){
/**
* 以前的做法
*/
UserService userService =new UserServiceImpl ();
userService.add ();
}
5、输出结果
2、采用spring方式
1、userService和UserviceImpl不变
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">
</beans>
3、在头文件的beans声明
<!--声明userService-->
<!--id:spring ioc容器创建对象之后可以使用id从容器里面使用getBean(String id )对取这个对象
class :要创建的对象的完全限定名(路径) -->
<bean id="userService" class="com.zhangyong.UserServiceImpl"></bean>
4、测试使用spring方式访问方法
@Test
public void test(){
/**
* 使用spring配置文件的写法
* 使用配置文件的application去自动new userService
* ApplicationContext 用于加载配置文件
* context.getBean 获取配置文件的声明
*/
ApplicationContext context = new ClassPathXmlApplicationContext ("application.xml");
UserService userService = (UserService) context.getBean ("userService");
userService.add ();
}
5、结果
![输出结果](https://img-blog.csdnimg.cn/20191113115032266.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5MTM3NjUyODc4NjE=,size_16,color_FFFFFF,t_70
3、DI 解释
- Dependency Injection 依赖注入,在spring框架负责常见Bean对象时,动态的将依赖对象注入到bean组件中
示例:
1、在UserService中添加实体类并加入get和set方法
public class UserServiceImpl implements UserService {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void add() {
System.out.println ("打印一下…………"+name);
}
}
2、输出结果:
3、在配置文件中注入name
<bean id="userService" class="com.zhangyong.UserServiceImpl">
<!--注入属性,调用set的方法-->
<property name="name" value="zhangsan"></property>
</bean>
4、输出结果
总结:可以看出name的值通过注入的方式打印出来了