spring学习网址:https://www.bilibili.com/video/av47952931?p=15(巨详细)

Java 整体的框架架构图(理清各个框架工作在哪个层)

java spring框架做什么 java中spring框架教程_xml


java spring框架做什么 java中spring框架教程_java spring框架做什么_02

Spring

spring的核心是IOC(控制反转,意思是把创建对象也就是new类对象的权利交给spring容器,要用到类对象的时候,直接从spring容器中拿),DI(依赖注入)以及API切面编程

Spring使用过程(首先是往项目中导包,idea的话直接新建一个spring项目,然后包就自动为你导好了,然后就是建目标类,这个类是之后要交给spring来创建对象的类,然后新建一个xml文件,idea直接新建一个spring xml文件,然后为目标类添加配置,一个bean可以理解为一个对象,id是之后spring创建对象时调用,可以理解为是对象的id,class是目标类所在的位置,property是定义类的属性,name是属性名称,value是为属性的赋值,ref是当属性是引用属性时,ref是bean中的id,注意类有属性的时候,你想用spring给属性赋值的时候,每个属性都必须要有setter函数,才能在xml中注入属性值,所以不需要定义任何构造函数)

1 整体过程导图

java spring框架做什么 java中spring框架教程_spring_03


2 导包:用idea编辑器的时候新建项目是spring项目时,这些jar包是自动导入的

java spring框架做什么 java中spring框架教程_java spring框架做什么_04


3 创建目标类,也就是之后要把创建对象权利交给spring的类

java spring框架做什么 java中spring框架教程_spring_05


java spring框架做什么 java中spring框架教程_java spring框架做什么_06


java spring框架做什么 java中spring框架教程_java spring框架做什么_07


4 新建配置文件(任何位置,一般放在src下,任何名字都行,一般命名为applicationContext),在idea的编辑器中,新建如下的spring配置文件,就会自动添加了schema约束,可以直接的添加配置即可

java spring框架做什么 java中spring框架教程_java spring框架做什么_08


配置文件的内容,用idea时候直接在任何位置(一般在src下)新建一个XML文件,如下

java spring框架做什么 java中spring框架教程_java spring框架做什么_09


那么生成的xml文件就如下:

java spring框架做什么 java中spring框架教程_spring_10

需要在里面添加配置,class是你要把创建对象的权利交给spring的类所在的位置,id是用于之后从spring容器获得实例时使用

<?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">


    <!--配置service-->
    <bean  id="UserServiceImplID" class="com\hdl\interfaces\UserServiceImpl.java" </bean>


</beans>

5 测试

java spring框架做什么 java中spring框架教程_ide_11

DI的详解(依赖注入)

java spring框架做什么 java中spring框架教程_java spring框架做什么_12


java spring框架做什么 java中spring框架教程_spring_13


java spring框架做什么 java中spring框架教程_java spring框架做什么_14


java spring框架做什么 java中spring框架教程_java spring框架做什么_15


java spring框架做什么 java中spring框架教程_xml_16

#目标类
public class BooksaleServiceImpl implements BooksaleService {
    public void addbook(){
        System.out.println("add a  sale book");

    }
}

#目标类
public class BookServiceImpl implements BookService {
    private BooksaleService booksaleService;
    //依赖注入时必须要有setter方法
    public void setBooksaleService(BooksaleService booksaleService) {
        this.booksaleService = booksaleService;
    }
    public void addbook(){
        booksaleService.addbook();

    }
}

#xml的配置
<bean  id="BookServiceImplID" class="E:\IdeaWorkspace\springStudy\src\com\hdl\services\BookServiceImpl.java">
        <property name="" ref="BooksaleServiceImplID"></property>
    </bean>
    <bean  id="BooksaleServiceImplID" class="E:\IdeaWorkspace\springStudy\src\com\hdl\services\BooksaleServiceImpl.java"></bean>

属性注入:

java spring框架做什么 java中spring框架教程_ide_17

注解(用注解来替代xml的配置)

java spring框架做什么 java中spring框架教程_java spring框架做什么_18


java spring框架做什么 java中spring框架教程_java spring框架做什么_19


java spring框架做什么 java中spring框架教程_ide_20


将注解加在类名上面,相当于是把类放在了spring里,有三种注解,@Controller,@Service,@Repository分别是放在controller层(action类上),Service层(处理层),dao层(数据交互层),作用是一样的,相当于 作用都是类放在Spring上了,@Controller(“StudentAction”) 相当于 那么属性注入又怎么注解呢?加在属性上的注解是@Autowired,用@Autowired 相当于是同类型注入,只要那个类型的类加入到spring中了,就能直接把属性注入给它,或者同时用两个注解@Autowired@Qualifier(“studentDaoId”)意思是将这个对象的值注入给它