1. <br /> 梳理一下Spring框架的基本用法<br /> 1.导包 core beans context expression<br /> commons-logging aop tx<br /> 2.核心配置文件<br /> ApplicationContext.xml<br /> 管理所有的bean对象<br /> 规则---->专业的手册<br /> <bean id="" class="" scope="" lazy-init="true"><br /> 3.创建一个BeanFactory对象<br /> ClassPathXmlApplicationContext("xml")<br /> (造型)getBean("id");<br /> 4.配置文件的问题<br /> 将不同的bean对象分开在不同的配置文件中写<br /> ApplicationContext_Dao.xml<br /> ApplicationContext_Service.xml
    2. ClassPathXmlApplicationContext("","","")<br /> ClassPathXmlApplicationContext(new String[]{"","",""})<br /> ClassPathXmlApplicationContext("ApplicationContext_*.xml");<br /> <import>在核心文件中引入<br /> 5.可以利用配置文件的标签<br /> 给我们需要的对象做赋值 DI依赖注入<br /> 利用属性对应的set方法进行赋值<br /> 利用带参数的构造方法给属性赋值<br /> <bean id="" class=""><br /> <property name="" value=""><br /> <constructor-arg name="" value=""><br /> </bean><br /> 6.接着昨天的代码之后来研究<br /> 对象中存在其他对象这样的形式<br /> <bean ref="其他bean的id号"><br /> <property><br /> <bean><br /> 手动:我们需要自己去配置bean 属性 关系<br /> 7.如果Spring可以帮我们自动的将对象装配进去<br /> DI
    3. 读取配置文件 (解析信息 class id)---String<br /> 反射<br /> 根据class创建类<br /> 根据类创建对象----默认立即加载 单例模式<br /> Map<id,对象> 3组<br /> 根据配置文件中的关系反射分析每一个对象的属性<br /> 给属性做赋值操作<br /> 反射能获取到属性(类型 名字)<br /> 通过属性类型---->刚才那个Map中有没有一个对象 一致的?<br /> 通过属性名字---->刚才那个Map中有没有一个对象
    4. 8.基于以上那些知识<br /> 可以利用Spring帮我们管理对象<br /> 所有的对象交给Spring管理都是<bean><br /> 可以利用自动装配的形式让Spring帮我们做对象之间的关系注入<br /> 手动:自己写配置文件的关系<br /> 自动:利用<bean autowire="byName/byType/constructor">
    5. 我们写了一个配置<br /> <bean id="service" class=""><br /> <bean id="controller" class="" autowire="byName"><br /> 底层:<br /> 读取配置文件 两个bean里面的所有信息 id class byType<br /> Class clazz = Class.forName("controller");<br /> Object controller = clazz.newInstance();//空参数的构造方法 new Controller();<br /> map.put("controller",controller);<br /> 再来一次 将service放入<br /> map.put("service",service);
    6. 分析Controller类中的属性<br /> Filed[] fields = clazz.getDeclaredFields();<br /> 循环每一次得到一个属性<br /> Class filedType = field.getType();// Service<br /> String fieldName = field.getName();// service
    7. Object service = map.get(fieldName);//byName<br /> <br /> //set方法 构造方法<br /> fieldName首字母变大写 前面拼接set---->setService<br /> Method method = clazz.getMethod("setService");<br /> method.invoke(service);
    8. =================================================================<br /> 综上<br /> 可以利用Spring管理对象啦<br /> 对象可以手动、自动的方式进行DI装配<br /> <property name="" value=""/ref=""><br /> 对象是[数组/集合] 不多见 录播课一节课详细讲啦
    9. 分析基于注解的配置形式<br /> 将原来xml中的信息放在注解里 导包<br /> 注解需要放置在 交给Spring管理对象的类上面<br /> @Component("") 组件<br /> 如果注解中不写"id" 默认-->类名字的驼峰式studentController<br /> @Controller<br /> @Service<br /> @Repository
    10. 接下来看Spring录播课<br /> 次重点:SpEL<br /> 重点:AOP<br /> 重点:Annotation后2节<br />
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans
    6. https://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context
    8. https://www.springframework.org/schema/context/spring-context.xsd">
    9. <!--这个文件的目的是为了管理所有的bean对象的 配置 值-->
    10. <!--<bean id="student" class="domain.Student">-->
    11. <!--<property name="sid" value="2"></property>-->
    12. <!--<property name="sname" value="dmc"></property>-->
    13. <!--<property name="ssex" value="女"></property>-->
    14. <!--<property name="age" value="99"></property>-->
    15. <!--</bean>-->
    16. <!--<bean id="student" class="domain.Student">-->
    17. <!--<constructor-arg name="sid">-->
    18. <!--<null></null>-->
    19. <!--</constructor-arg>-->
    20. <!--<constructor-arg name="sname">-->
    21. <!--<null></null>-->
    22. <!--</constructor-arg>-->
    23. <!--<constructor-arg name="ssex" value="男"></constructor-arg>-->
    24. <!--<constructor-arg name="age" value="19"></constructor-arg>-->
    25. <!--</bean>-->
    26. <!--====================================================================================================-->
    27. <!--<bean id="student" class="domain.Student">-->
    28. <!--<property name="sname" value="zzt"></property>-->
    29. <!--<property name="age" value="18"></property>-->
    30. <!--<property name="computer"><bean class="domain.Computer"></bean></property>-->
    31. <!--<property name="computer.brand" value=""></property>-->
    32. <!--</bean>-->
    33. <!--controller service dao sqlSession-->
    34. <!--================================================================-->
    35. <!--告知配置文件里没有bean 扫描注解-->
    36. <context:component-scan base-package="controller,service,dao,domain"></context:component-scan>
    37. </beans>