SSM框架学习记录

Spring配置文件

  • Spring体系结构

  • Spring开发步骤

groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

  • Bean标签范围配置

scope:指对象的作用范围,取值如下:

(1)当scope的取值为singleton

Bean的实例化个数:1个

Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例

Bean的生命周期:

      对象创建:当应用加载,创建容器时,对象就被创建了

      对象运行:只要容器在,对象一直活着

      销毁:当应用卸载,销毁容器时,对象就被销毁了

(2)当scope的取值为prototype

Bean的实例化个数:多个

Bean的实例化时机:当调用getBean()方法时实例化Bean

     对象创建:当使用对象时,创建新的对象实例

     对象运行:只要对象在使用中,就一直活着

     对象销毁:当对象长时间不用时,被 Java 的垃圾回收器回收了

  • Bean生命周期配置

  1、构建: 单例模式的Bean在容器启动时构建,多例模式在每次调用Bean时构建;

  2、初始化:  构建完成,并赋值后(?) ,运行初始化方法, 不管单例还是多例都会运行初始化方法;

  3、销毁:只有单例Bean在容器销毁时会运行销毁方法,多例模式Bean不运行销毁方法.

       initMethod--初始方法

       destroyMethod--销毁方法

  • Bean实例化三种方式

    使用无参的构造器实例化(常用的) 

    使用静态工厂方法实例化

    使用实例工厂方法实例化

  • Bean的依赖注入概念

     依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为赖注入

  •  Bean的依赖注入方式

      set方法

                p命名空间注入

      构造方法

  • Bean的依赖注入的数据类型

注入数据的三种数据类型

普通数据类型

引用数据类型

集合数据类型

今天就这些啦,明天继续加油!!!

第二天

  • Spring的重点配置

<bean>标签

id属性:在容器中Bean实例的唯一表示,不允许重复

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

scope属性:Bean的作用范围,常用Singleton(默认)和prototype

<constructor-arg>标签

<property>标签:属性注入

      name属性:属性名称

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

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

      <list>标签

    <map>标签

 <properties>标签 

 

<import>标签:导入其他的Spring的分文件

  •  ApplicationContext的实现类
*ClassPathXmlApplicationContext:它可以加载类路径的配置文件,要求配置文件必须在类路径下,如果不在则加载不了
*FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
*AnnotationConfigApplicationContext:它是用于读取注解创建容器的
  • getBean( )方法的使用

1.boolean containsBean(String name): 判断容器中是否含有id为name的bean实例,
2.Class<?>getType(String name): 返回容器中id为name的bean实例的类型
3.Object getBean(String name): 返回容器中id为name的bean实例

 可以看到,通过id方式获取对象,返回的是Object类型,需要强制转换类型来获取指定类型。

4.<T>T getBean(Class<T> requiredType): 返回容器中属于requiredType类型的、唯一的bean实例。

 这里解释一下唯一是什么意思:这里的唯一指的是,当用指定类型的方式获取spring容器中bean对象时,spring容器中的那个类型的bean只能声明一个!而不是说你只能写一次getBean(Book.class)的意思,你可以写很多很多个,当你没声明scope是多例的时候,你声明再多个也只是给你同一个对象。

<T>T getBean(String name,Class<T> requiredType): 返回容器中id为name并且属于requiredType类型的Bean实例。

Spring配置数据源

  • 数据源(连接池)

常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等

第三天

  • C3P0连接测试

  •  Druid连接测试

 

  •  抽取jdbc.peoperties配置文件

 

  • Spring容器产生数据源对象

  •  Spring加载properties文件

 

 Spring注解开发(特别重要!!!)

  •  spring原始注解
  1. Spring是轻代码而重配置的框架,配置比较繁重影响开发,所以注解开发算是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率

  2. 该原始注解主要替代的配置

  3. 注解类型及说 

注解说明
@Component使用在类上用于实例化Bean
@Controller使用在web层类上用于实例化Bean
@Service使用在service层类上用于实例化Bean
@Repository使用在dao层类上用于实例化Bean
@Autowired使用在字段上用于根据类型进行依赖注入
@Qualifier结合@Autowired一起使用用于根据名称进行依赖注入
@Resource相当于@Autowired+@Qualifier,按照名称进行注入
@Value注入普通属性
@Scope标注Bean的作用范围
@PostConstruct使用在方法上标注该方法是Bean的初始化方法
@PreDestory使用在方法上标注该方法时Bean的销毁方法

注意:
 使用注解开发时候需要在applicationContext.xml中进行最近扫描

  •  Spring新注解
注解说明

 @Configuration

用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解

 @ComponentScan

用于指定 Spring 在初始化容器时要扫描的包。

作用和在 Spring 的 xml 配置文件中的

<context:component-scan base-package="com.itheima"/>一样

 @Bean

使用在方法上,标注将该方法的返回值存储到 Spring 容器中

 @PropertySource

用于加载.properties 文件中的配置

@Import

用于导入其他配置类

Spring集成Junit

步骤:

1.导入spring集成Junit的坐标

2.使用@Runwith注解替换原来的运行期

3.使用@ContextConfiguration指定配置文件或配置类

4.使用@Autowired注入需要测试的对象

5.创建测试方法进行测试

SpringMVC简介

  •  SpringMVC的开发步骤
  1. 导入SpringMVC的坐标

  2. 配置servlet

  3. 编写controller

  4. 将Controller使用注解配置到Spring容器中

  5. 配置spring-mvc.xml(配置组件扫描)

  6. 客户端发起请求测试

  • SpringMVC的数据响应

SpringMVC的数据响应方式

     页面跳转

   直接返回字符串

   通过ModelAndView对象返回

     回写数据

   直接返回字符串

   返回对象或集合

注意:

     ①通过SpringMVC框架注入的response对象,使用response.getWriter(.print("hello world”)回写数据,此时不需要视图跳转,业务方法返回值为void。

    ②将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMNC框架,方法返回的字符串不是跳转是直接在http响应体中返回。

  • SpringMVC获得请求数据

获得请求参数

  参数绑定注解

handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:

   处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解:PathVariable;

   处理request header部分的注解:   @RequestHeader, @CookieValue;

  处理request body部分的注解:@RequestParam,  @RequestBody;

  处理attribute类型是注解: @SessionAttributes, @ModelAttribute;

  • 文件上传

文件上传客户端三要素

    表单提交方式:post (get方式提交有大小限制,post没有)

   表单的enctype属性:必须设置为multipart/form-data. 

   表单必须有文件上传项:file

  • 文件上传步骤

导入依赖jar包
在这里插入图片描述

 配置文件上传解析器,配置MultipartResolver---- CommonsMultipartResovler

编写文件上传代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值