黑马程序员技术交流社区

标题: Spring框架 [打印本页]

作者: liweihao5253    时间: 2019-9-23 16:39
标题: Spring框架
Spring框架入门常见的框架集:SSM(Spring+SpringMVC+MyBatis)Srping内核技术:IoC、AOPSpring的功能:spring提供了展现层(springMVC)和持久层(jdbctemplate)以及业务层事务管理spring是一个管理框架Spring历史:Spring的前身是EJB2017发布了Spring5.0Spring的优势:
        * 方便解耦、简化开发
        * AOP支持
        * 声明式事务的支持
        * 方便程序测试
        * 方便集成各种优秀的框架
        * 降低JavaEE API的使用难度
        * 其源代码成为学习的典范

词汇:transaction 事务控制反转(IoC,Inversion of Control)概念:把对象的创建管理权交给Spring,通过Spring的对象容器实例化并管理对象作用:控制反转的最大贡献就是解耦,通过配置文件设定具体的实现类而不用重新编译使用方法:1、根据maven坐标导入spring-context的jar包2、定义applicationContext.xml配置文件3、定义类文件4、在配置文件中注册对应的类文件5、测试类中实例化ApplicationContext对象,并调用getBean()方法<bean>标签常见属性idid唯一class全限定类名scope作用范围factory-method工厂生产方法factory-bean实例化工厂init-method初始化方法destroy-method销毁方法scope的取值    singleton         单例(默认值)    prototype        多例    request            在WEB中,存在于request域对象中    session             同上    global session单例模式和多例模式的差异注入对象时,单例模式注入的永远是同一个实例,多例模式每次注入都会生成新的实例Bean的生命周期Bean对象的创建    单例模式的Bean对象随Spring的Bean容器创建而创建,且只创建这一次    多例模式Bean对象随着getBean方法而创建Bean对象的运行    单例模式Bean容器在对象就在    多例模式对象在使用对象就在Bean对象的销毁    单例模式容器销毁对象销毁    多例模式对象被虚拟机回收机制自动回收Bean的生命周期配置自定义init()方法和destroy()方法1、首先在类中定义好方法2、然后在Spring容器配置:    <bean id="userDao1" class="com.itheima.dao.impl.UserDaoImpl"    init-method="init" destory-method="destroy></bean>Bean实例化的三种方式:1、无参构造方法(最常用)2、工厂的静态方法    <bean ... class ... factory-method="getUserDao">3、工厂的实例方法    <bean ... facrory-bean="" factory-method="">   不写class依赖注入(DI,Dependency Injection)Dao层和Service层存在依赖关系,因此可以在容器中,生成Service对象的同时,将Dao注入到Service内部这样一来就不用在Service层手动生成Dao对象了,只需要获取Service对象就能直接操作Dao对象依赖注入两种方式:1、通过属性注入    -- 将依赖当成属性,把Dao当成Service的一个属性,需要setDao方法①Service类中定义UserDao的成员变量+setUserDao(..)方法②配置xml文件<bean>    <property name="userDao" ref="userDao"></property> -- ref需要配置文件中配置bean标签</bean>2、通过构造方法注入   -- 将依赖当成有参构造参数传入<bean><constructor-arg name="userDao" ref="userDao"></constructor-arg></bean>注入普通属性value注入普通属性 rel注入依赖对象(需要存在于SpringBean容器中)如何注入集合类型的对象呢?注入集合类型属性List集合:<property name="userList"><list>    <value>zhangsan</value> -- String类型用value    <bean class="com.itheima.UserDao">    <ref bean="u1"/><list></property>Map集合:<property name="userMap"><map>    <entry key="u1" value-ref="user1">zhangsan</entry>    <entry key="u1" value="zhangsan">zhangsan</entry><map></property>Properties:<property name="properties"><props>    <prop key="a">p1</prop>    <prop key="b">p2</prop>    <prop key="c">p3</prop><props></property>分布式编写Spring的xml文件通过import标签整合在<beans>标签中<import resource="xxx.xml"> 导入其他Srping的分文件java代码中引用的xml文件依然是主配置文件分文件如何划分?可以按照层级划分也可以按照技术点划分(企业常用)也可以按照业务划分Spring小应用使用Spring管理数据源:





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2