Spring笔记01
程序员文章站
2022-06-11 16:57:16
spring 第一章 Spring模块规划图 核心架包 AOP+Aspects(面向切面编程模块) 数据访问/:Spring数据库访问模块 Web:Spring开发web应用的模块; ecplise插件的安装 1.ecplise查看版本号: Help About Eclipse 点击自己eclips ......
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都自动生成!