spring学习笔记(一)

spring 5 框架开发

1、配置与依赖注入:

1、spring 机制:

ioc(控制反转),aop(面向切片编程)

image-20210511084840528

2、配置ApplicationContext.xml文件

image-20210511084935321

<?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">
<!--user对象创建-->
<!--    <bean id="user" class="com.qw.spring.dao.User" scope="prototype"></bean>-->
<!--	单例模式、默认属性值,spring核心文件应用加载,容器创立的时候,对象也创立,容器销毁,对象销毁-->
<!--        <bean id="userDao" class="com.qw.spring.impl.UserDaoImpl" scope="singleton"></bean>-->
<!--	多例模式,getbean创建bean对象,使用对象时创立,多个对象存在,时间长不被使用,被java回收机制回收-->
        <bean id="userDao" class="com.qw.spring.impl.UserDaoImpl" scope="prototype"></bean>
</beans>

3、Bean的生命周期属性

        <bean id="userDao" class="com.qw.spring.impl.UserDaoImpl" init-method="init" destroy-method="destory"></bean>

对象创建 init-method 初始化方法 destory-method 销毁方法

4、Bean实例化的三种构造方式

无参构造方法

工厂静态方法

public class StaticFactory {
    public static UserDao getUserDao(){
        return new UserDaoImpl();
    }
}
        <bean id="userDao" class="com.qw.spring.factory.StaticFactory" factory-method="getUserDao"></bean>

工厂实例方法

public class DynamicFactory {
    public UserDao getUserDao(){
        return new UserDaoImpl();
    }
}
<bean id="factory" class="com.qw.factory.DynamicFactory"></bean>
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"/>
image-20210511095614878 image-20210511101115730

5、Bean依赖注入

Ioc(反转控制)的核心是依赖注入操作业务层,业务层需要的持久层对象由spring框架传入,不需要我们自己获取

Bean的依赖注入方式:

public class UserServiceImpl implements UserService {

    private UserDao userDao;
    //构造方法
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }


    public UserServiceImpl() {
    }

	//set方法
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save() {
        userDao.save();
    }
}	

构造方法

		<bean id="userService" class="com.qw.spring.service.impl.UserServiceImpl">
                <constructor-arg name="userDao" ref="userDao"></constructor-arg>
        </bean>

set方法

        <bean id="userService" class="com.qw.spring.service.impl.UserServiceImpl">
                <property name="userDao" ref="userDao">
                </property>
        </bean>

6、P命名空间

<beans>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
</beans>


<bean id="userService" class="com.qw.spring.service.impl.UserServiceImpl" p:userDao-ref="userDao"/>

7、Bean 的依赖注入和数据类型

普通数据类型

引用数据类型

集合数据类型

<bean id="userDao" class="com.qw.spring.dao.impl.UserDaoImpl">
                <property name="stringList">
                        <list>
                                <value>aaa</value>
<!--                                <ref> </ref>-->
                                <value>abb</value>
                                <value>aab</value>
                        </list>
                </property>
                <property name="userMap">
                        <map>
                                <entry key="user1" value-ref="user1"/>
                                <entry key="user2" value-ref="user1"/>
                        </map>
                </property>
                <property name="properties">
                        <props>
                                <prop key="p1">ppp1</prop>
                                <prop key="p2">ppp2</prop>
                                <prop key="p3">ppp3</prop>
                        </props>
                </property>
        </bean>
        <bean id="user1" class="com.qw.spring.domain.User">
                <property name="name" value="tom"/>
                <property name="address" value="北京"/>
        </bean>
        <bean id="user2" class="com.qw.spring.domain.User">
                <property name="name" value="lucy"/>
                <property name="address" value="天津"/>
        </bean>

8、分模块开发

image-20210511140318009

在主配置文件中可以使用import标签引入其他配置文件,实现配置时一同加载。

9、spring的重点配置

标签

​ id属性:在容器当中bean的唯一标识,不可重复

​ class属性:要实例化的Bean的全限定名

​ scope属性:定义bean的作用范围

​ 标签:属性注入

​ name属性:属性名称

​ value属性:注入的普通属性值

​ ref属性:注入的对象引用值

​ 标签

标签

​ 标签

​ 标签通过构造方法注入

标签:引入其他spring的分文件

10、ApplicationContext的实现类

1)ClassPathXmlApplicationContect(系统的源文件夹)

2)FileSystemXmlApplicationContext(本地磁盘)

3)AnnotaionConfigApplicationContext(注解配置对象使用)

11、getBean()方法使用

public Object getBean(String name) throws BeansException{
    assertBeanFactoryActive();
    return getBeanFactory().getBean(name);
}

public <T> T getBean(Class<T> requireType) throws BeansExpcetion{
    assertBeanFactoryActive();
    return getBeanFactory().getBean(requiredType);
}

12、知识要点

Spring重点API

ApplicationContext context = new ClassPathXmlApplicationContext("resource中的xml");
context.getBean("id");
context.getBean(class)

2、Spring配置数据源

1、数据源(连接池)的作用

●数据源(连接池)是提高程序性能如出现的
●事先实例化数据源,初始化部分连接资源
●使用连接资源时从数据源中获取
●使用完毕后将连接资源归还给数据源

常见的数据源:DBCP、C3P0、BoneCp、Durid

开发步骤

①导入数据源的坐标和数据库驱动坐标

②创建数据源对象

③设置数据源的基本连接数据

④使用数据源获取资源和归还连接资源

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一种轻量级的、非侵入式的开发方式,通过依赖注入和面向切面编程等特性,简化了Java应用程序的开发过程。 以下是关于Spring学习的一些笔记: 1. IoC(控制反转):Spring通过IoC容器管理对象的创建和依赖关系的注入。通过配置文件或注解,将对象的创建和依赖关系的维护交给Spring容器来管理,降低了组件之间的耦合度。 2. DI(依赖注入):Spring通过依赖注入将对象之间的依赖关系解耦。通过构造函数、Setter方法或注解,将依赖的对象注入到目标对象中,使得对象之间的关系更加灵活和可维护。 3. AOP(面向切面编程):Spring提供了AOP的支持,可以将与业务逻辑无关的横切关注点(如日志、事务管理等)从业务逻辑中分离出来,提高了代码的可重用性和可维护性。 4. MVC(模型-视图-控制器):Spring提供了一个MVC框架,用于构建Web应用程序。通过DispatcherServlet、Controller、ViewResolver等组件,实现了请求的分发和处理,将业务逻辑和视图展示进行了分离。 5. JDBC和ORM支持:Spring提供了对JDBC和ORM框架(如Hibernate、MyBatis)的集成支持,简化了数据库访问的操作,提高了开发效率。 6. 事务管理:Spring提供了对事务的支持,通过声明式事务管理和编程式事务管理,实现了对数据库事务的控制和管理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值