Spring笔记01

2019-12-13 16:03:35来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Spring笔记01

spring

第一章

Spring模块规划图

核心架包

spring-beans-4.0.0.RELEASE、
spring-core-4.0.0.RELEASE、
spring-context-4.0.0.RELEASE、
spring-expression-4.0.0.RELEASE

AOP+Aspects(面向切面编程模块)

spring-aop-4.0.0.RELEASE、spring-aop-4.0.0.RELEASE

数据访问/:Spring数据库访问模块

spring-jdbc-4.0.0.RELEASE、spring-orm(Object Relation Mapping)-4.0.0.RELEASE、
spring-ox(xml)m-4.0.0.RELEASE、spring-jms-4.0.0.RELEASE、(Intergration)
spring-tx-4.0.0.RELEASE(事务)

Web:Spring开发web应用的模块;

spring-websocket(新的技术)-4.0.0.RELEASE、
spring-web-4.0.0.RELEASE、和原生的web相关(servlet)
spring-webmvc-4.0.0.RELEASE、开发web项目的(web)
spring-webmvc-portlet-4.0.0.RELEASE(开发web应用的组件集成)

ecplise插件的安装

1.ecplise查看版本号: Help->About Eclipse-->点击自己eclipse的图标

2.选中带有SpringIDE的四项

3.去掉hide与contact选框

第二章

核心思想

IOC:控制反转

? 控制:资源的获取方式。

? 从主动自己创建。如:BookService bs = new BookService();

? 到被动:直接从容器获取,容器进行对象的管理

? 容器:(婚介所)管理所有的组件(有功能的类);容器:主动的new资源变为被动的接受资源 ;

DI:依赖注入

? 容器通过反射的形式,将容器中对象注入(利用反射给属性赋值);

框架编写流程

1.导包:

核心容器
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
commons-logging-1.1.3.jar
Spring运行的时候依赖一个日志包;没有就报错;

2.写配置

spring的配置文件中,集合了spring的ioc容器管理的所有组件(会员清单);创建一个Spring Bean Configuration File(Spring的bean配置文件);

<!--
    一个Bean标签可以注册一个组件(对象、类) (会员对象)
    class:写要注册的组件的全类名(会员真实名字)
    id:这个对象的唯一标示;(会员号)
-->

<bean id="person01" class="com.atguigu.bean.Person">
        <!--使用property标签为Person对象的属性赋值 
            name="lastName":指定属性名
            value="张三":为这个属性赋值
        -->
        <property name="lastName" value="张三"></property>
        <property name="age" value="18"></property>
        <property name="email" value="zhangsan@atguigu.com"></property>
        <property name="gender" value="男"></property>
</bean>

3.测试

package com.atguigu.test;

import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.atguigu.bean.Person;

public class IOCTest {

    @Test
    public void test() {
        //ApplicationContext 代表ioc容器
        //ClassPathXmlApplicationContext:当前应用的xml配置文件在 ClassPath下
        //跟spring的配置文件得到ioc容器对象
        ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");
        
        //容器帮我们创建了对象了
        Person bean = (Person) ioc.getBean("person01");
        
        System.out.println(bean);
    }

}

打印结果:

Person [lastName=张三, age=18, gender=男, email=zhangsan@guigu]

说明:

 1)、src,源码包开始的路径,称为类路径的开始;(source folder 等价与src)  
    *所有源码包里面的东西都会被合并放在类路径里面;     
    *java:/bin/     
    *web:/WEB-INF/classes/
 2)、导包commons-logging-1.1.3.jar(依赖)     
 3)、先导包再创建配置文件;     
 4)、Spring的容器接管了标志了s的类(装了插件才有特效)

细节:

new ClassPathXMlApplicationContext("ioc.xml");ioc容器的配置文件在类路径下;
FileSystemXmlApplicationContext("F://ioc.xml");ioc容器的配置文件在磁盘路径下;

1)ApplicationContext(IOC容器的接口)
2)给容器中注册一个组件;我们也从容器中按照id拿到了这个组件的对象?
    组件的创建工作,是容器完成;
    Person对象是什么时候创建好了呢?
    容器中对象的创建在容器创建完成的时候就已经创建好了;
3)同一个组件(对象)在ioc容器中是单实例的、
4)、容器中如果没有这个组件,获取组件?报异常
     * org.springframework.beans.factory.NoSuchBeanDefinitionException:
     * No bean named 'person03' is defined
     * 5)、ioc容器在创建这个组件对象的时候,(property)会利用setter方法为javaBean的属性进行赋值;
     * 6)、javaBean的属性名是由什么决定的?getter/setter方法是属性名;set去掉后面那一串首字母小写就是属性名;
     * private String lastName;?
     * 所有getter/setter都自动生成!

原文链接:https://www.cnblogs.com/lzss2018/p/12036501.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JPA中实现双向一对一的关联关系

下一篇:windows下RocketMQ下载安装教程