关于SSM的一些不成熟的总结-.-

  1. 云栖社区>
  2. 博客>
  3. 正文

关于SSM的一些不成熟的总结-.-

漏船载酒 2017-10-19 21:02:27 浏览975

Mybatis
使用
导jar包
建立Model类 必须具有setter和getter方法
创建mybatis-config.xml文件
创建UserMapper文件写sql语句
回到mybatis-config.xml中配置mappers标签
写代码写代码完成功能 读取mybatis-config

可通过注解方式写sql语句
具体就是在到接口上写sql语句

mybatis-config。xml中 拥有的标签有
驼峰命名的标签
typeAlias 起别名的标签
environment 环境配置
包括数据库的链接(dataSource)
最重要的是关于接口映射文件的sql语句配置
两种方式
xml配置
注解配置

字符串拼接用$
参数的话用#

Mapper中
where标签用来拼接条件 会忽略紧跟着的一个and

foreach循环

collection 循环的集合  默认参数名字计较array
item 集合中的每个元素
separator :for 循环拼接后的每个字符串之间使用这个分隔符分隔
open for 左边的语句  可以不使用

获取插入数据的主键
方案1 使用selectKey
方案2 在insert标签曾加 userGenertatedkeys="true" keyProperty="id" 两个属性


Reflect反射
通过Class获取累的结构 并操纵其中的内容(属性 构造方法 方法等)

获取这个对象的类 对象
.java编译为class在使用的时候会加载到内存中的方法区
表明这个类的结构 父类 接口 类型 属性 方法等内容
可以通过 对象的getClass方法或者类的class属性 获取表示这个类结构的Class对象

================================================
================Spring==========================
使用dao中的方法
dao.saveUser

使用spring后不再通过new创建对象了 而是从spring框架里获取要使用的对象
通常是通过名字获取
这样我们可以把要使用的对象的名字写在配置文件中 只需要通过
修改配置文件即可实现适用对象的替换 而不需要修改代码重新编译程序

IOC 控制反转

UserDao对象的创建从UserServiceImpl移动到了spring容器中
一个类在spring中进行注册后 其他类就可以通过他注册的信息获取这个类

的对象

DI:dependency Inject 依赖注入 创建对象时动态为属性赋值
两种方式
setter 注入 和构造方法注入

IOC 是Spring 帮我们创建对象 DI是Spring帮我们为属性赋值

创建对象的时候为属性赋值

通过setter方法进行设置
通过constru方法进行设置
使用spel语言赋值 写一些简单的java代码

P标签

 需要引入 xmlns:p="http://www.springframework.org/schema/p"
在bean标签的属性中使用p:属性名=“”进行赋值操作

对象赋值需要使用ref 包括p标签也是p:属性名-ref=""bean 的id

id 唯一标识 不能重复
name 设置名字 如果id的话 可以和别的重复 否则不能
class 类的全名 包名+类名
scope 设置创建模型

singleton 单例
prototype 多列

init-method/destroy-method 在对像创建和销毁的时候调用的方法
只有在singleton下有效 并且方法不能有参数

lazy-init 默认false 在bean factories 创建的时候 创建注册过的所有单列类

bean factories 在第一使用getBean获取单例对象的时候创建
设置为true就是懒加载 只有第一次使用的时候才会去创建对象

autowire 自动把注册过的bean 关联到bean对象的属性上

bytype 如果注册过的bean的类型和属性类型一致 那么进行赋值操作
自动把user复制给car的own属性 疑问他们类型一致
byName 根据注册过的bean的名字自动注册属性

通过配置文件 切换不同的功能
IOC 把对象的创建交给Spring 降低代码类和类之间的耦合度
方便我们对程序进行扩展和维护

AOP 面向切面编程
再不修改源代码的基础上增加新的功能
在日志和异常方面很常用
导3个包

Spring aop aspects
AspectJ aspectjweaver

我们可以使用注解的方式配置 就不需要在这里增加bean标签了 可以节省许多代码
注解需要context。jar的支持 属于4个jar核心之一
使用的时候引入xml的schema文件 然后配置context:component-scan标签即可
自动扫描base-package中所有的类中的相关注解 把信息注册到IOC容器中

在类名上添加注解标签即可注册为bean 接收IOC容器管理

以下四个标签出了名字使用的时候没有任何区别

只是Spring推荐我们在不同的场景使用跟适合的标签
@Component    组件 工具
@Service       Service层
@Repository    Dao层
@Controller     Controller层

默认名字是类名首字母小写userServiceImpl@Service(“自定义名字”)

@Scope(“单列多例requestsession”)设置生命周期

@Autowired 自动注入属性 byType required=false 找到不不报错
@Resource 自动注入属性 byName=byType @Resource(“name=bean”)指定bean的名字
@Autowired最常用 属性名很少和Bean的名字匹配
@Value 可以简单注入值
以上也可以写在setter方法上 一般没这么做
如果有多个类型相同的bean 那么需要使用下面指定一个 否则会报错
@Qualifier(“bean的名字”)强制按照名字注入

================================================================
=====Spring-mvc=================================================
@controller 表示这是一个处理controller的请求

@RequestMapping("/view/welcome") 表示使用welcome()方法处理welcome请求

返回值表示请求处理完毕 跳转到指定的welcome。jsp
默认情况下 不区分get post等方式 如果需要区分的话增加method参数
method=RequestMethod.GET

@RequestParam(value="name"required=false,defaultValue="world")
把请求中的name的值绑定在后边方法的参数上
required=false 说明这个参数不是必需的 如果请求中没有那么使用默认值

defaultValue="World"

如果参数比较多 可以增加参数 保证属性名和参数名对应即可

如果参数比较多 可以直接封装为对象 保证属性名和参数名对应即可

Spring MVC 项目中只有一个 servlet,就是:DispatcherServlet

    所有的请求全部交给它来处理
    接收到请求以后会去查询 handleMapping 获取处理请求的 Controller
    handleMapping 是一个类似于 Map 的结构,存储了 url 和 对应的 controller
    创建 Controller 对象,传入 request 和 response,由 Controller 处理请求
    不同的 Controller 调用不同的 Service 完成不同的功能
    返回 ModelAndView 的对象给 DispatcherServlet
DispatcherServlet 解析 ModelAndView 后做出响应,再浏览器展示对应的页面和数据