Spring学习日志二

一、回顾  

  1.1 restful风格  GET(查找) POST(添加)  【PUT(更新) DELETE(删除) 一定要使用springmvc中的过滤器,来把post提交转化为PUT,DELETE, _method:表示真正的提交方式】

  1.2 Springmvc如何进行异常处理。 1.局部  2.全局 @ControllerAdvice

  1.3 Spring框架。它就是一个容器,管理类对象的生命周期。

  1.4 IOC(DI) 控制反转

    Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中

二、Spring依赖注入的方式

  1.通过set方法

    <bean id="user1" class="com.zhiyou100.klb.bean.User">
        <!-- property:就是通过set方法来注入类的属性的值 -->
        <property name="name" value="${user.names}"></property>
        <property name="age" value="${user.age}"></property>
    </bean>

  2.通过构造方法

    <bean id="user2" class="com.zhiyou100.klb.bean.User">
        <!--
            constructor:构造方法的参数
            index:第几个参数,所应从零开始
            name:通过构造方法的参数名
        -->
        <constructor-arg index="0" value="${user.names}"></constructor-arg>
        <constructor-arg index="1" value="${user.age}"></constructor-arg>
    </bean>

三、依赖注入的数据类型

  1.基本数据类型和字符串 使用value

  2.如果是指向另一个对象的引用 使用ref

  3.如果类对象注入的属性类型为list类型

  <property name="list">
            <list>
                <bean class="com.zhiyou100.klb.bean.Student">
                    <property name="msg" value="${list.one}" ></property>
                </bean>
                <bean class="com.zhiyou100.klb.bean.Student">
                    <property name="msg" value="${list.two}" ></property>
                </bean>
                <bean class="com.zhiyou100.klb.bean.Student">
                    <property name="msg" value="${list.three}" ></property>
                </bean>
                <bean class="com.zhiyou100.klb.bean.Student">
                    <property name="msg" value="${list.four}" ></property>
                </bean>
            </list>
        </property>

  4.如果类对象注入的属性类型为map类型。

    <property name="map">
            <map>
                <entry key="key1" value="yi"></entry>
                <entry key="key2" value="er"></entry>
                <entry key="key3" value="san"></entry>
            </map>
        </property>

四、bean的作用域

  Bean的作用域默认为单例模式

五、自动注入

  <bean id="userDao" class="com.zhiyou100.klb.bean.UserDao"></bean>
    <!--
        autowire:自动注入的属性
        byType:根据useDao属性的类型,找与之匹配的bean
        byName:根据属性名,找与之匹配的bean的id
        no:需要手动注入
        default:采取全局的default-autowire设置
     -->
    <bean id="userServlet" class="com.zhiyou100.klb.bean.UserServlet" autowire="byType"></bean>

六、在Spring配置文件中引入属性文件

  <context:property-placeholder file-encoding="utf-8" location="classpath:*.properties"/>

    <bean id="user2" class="com.zhiyou100.klb.bean.User">
        <!--
            constructor:构造方法的参数
            index:第几个参数,所应从零开始
            name:通过构造方法的参数名
        -->
        <constructor-arg index="0" value="${user.names}"></constructor-arg>
        <constructor-arg index="1" value="${user.age}"></constructor-arg>
    </bean>

七、使用注解

  1. 引入jar包(aop的jar包)
  2. 配置文件中使用包扫描。
  3. 在相应的类上加上注解.

  @Repository   持久化注解。

  @Service 业务层注解

  @Controller 控制层注解

  @Autowired 自动注入 按照类型帮你自动注入,如果由多个类型相同的那么就会在按照名称注入。(建议使用这个)

  @Resouce  自动注入 按照名称注入,如果没有相同名称的bean那么会按照类型帮你注入。 它可以指定名称来注入。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

    <!-- 包扫描:扫描 -->
    <context:component-scan base-package="com.zhiyou100.klb"></context:component-scan>

</beans>
package com.zhiyou100.klb.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zhiyou100.klb.dao.UserDao;

@Service
public class UserServiceImp implements UserService {

    @Autowired
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    /* (non-Javadoc)
     * @see com.zhiyou100.klb.service.UserService#queryById(int)
     */
    @Override
    public void queryById(int id) {
        userDao.selectById(id);
    }
}
package com.zhiyou100.klb.dao;

import org.springframework.stereotype.Repository;

@Repository
public class UserDaoImp implements UserDao {

    /* (non-Javadoc)
     * @see com.zhiyou100.klb.dao.UserDao#selectById(int)
     */
    @Override
    public void selectById(int id) {
        System.out.println("根据ID查询数据库数据");
    }
}
package com.zhiyou100.klb.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import com.zhiyou100.klb.service.UserService;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    public String findById(int id) {
        userService.queryById(id);
        return "update";
    }
}

原文地址:https://www.cnblogs.com/kklb/p/11478568.html

时间: 2024-08-02 07:31:38

Spring学习日志二的相关文章

Spring学习(二)——使用用Gradle构建一个简单的Spring MVC Web应用程序

1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module,在弹出的窗口的左侧中选择 [Gradle],右侧勾选[Spring MVC],如下图所示: 并勾选[Application server],下方选择框中选择Tomcat7.0,如无该选项,则选中右边的 [ New... ] -- [ Tomcat Server ], 配置 Tomcat .配置好后

Spring学习(二)spring ioc注入的三种方式

一.spring ioc注入有哪三种方式: a setter 原理 : 在目标对象中,定义需要注入的依赖对象对应的属性和setter方法:"让ioc容器调用该setter方法",将ioc容器实例化的依赖对象通过setter注入给目标对象,封装在目标对象的属性中. b 构造器 原理 : 为目标对象提供一个构造方法,在构造方法中添加一个依赖对象对应的参数.ioc容器解析时,实例化目标对象时会自动调用构造方法,ioc只需要为构造器中的参数进行赋值:将ioc实例化的依赖对象作为构造器的参数传入

Spring学习记录(二)---容器和属性配置

下载spring包,在eclipse搭建spring环境. 这步我在eclipse中无法导入包,看网上的: http://sishuok.(和谐)com/forum/blogPost/list/2428.html 建一个java project 三个java文件,一个xml文件 1 package com.guigu.spring.beans; 2 3 public class HelloWord { 4 private String name; 5 public String getName(

spring学习(二)---依赖注入

spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.business.bean; import org.springframework.stereotype.Repository; import testSpring.business.iface.IPrint; /** * UserBean : * @author xuejupo [email protected

Spring学习总结二——SpringIOC容器二

一:指定bean的依赖关系 例如examplebean对象依赖examplebean1对象,那么在创建examplebean对象之前就 需要先创建examplebean1对象. 1:创建Examplebean1类: 1 /** 2 * 3 */ 4 package com.hlcui.dao; 5 6 /** 7 * @author Administrator 8 * 9 */ 10 public class ExampleBean1 { 11 public ExampleBean1() { 1

MySQL学习日志(二)

# DML 事务 隔离级别 存储引擎对比 ##DML     insert into 第一种: insert into tb_name [(col1,col2,....)]{values|value}(val1,val2,...)[,(val21,val22,....),....] 第二种: insert into tb_name set col_name=val1,col2=val2,.... 第三种(将一个表中的数据插入到另外一张表中): insert into tb_name select

Spring学习(二)

1. AOP的思想(如何实现),AOP在哪些地方使用? 相关术语有哪些? AOP是面向切面编程,它是一种编程思想,采取横向抽取机制,取代了传统纵向继承体系重复性代码的方式 应用场景有: 记录日志 监控方法运行时间(监控性能) 权限控制 缓存优化(第一次调用查询数据库,将查询结果放入内存对象:第二次调用,直接从内存对象返回,不需要查询数据库) 事务管理(调用方法前开启事务,调用方法后提交或者回滚.关闭事务) AOP的相关术语 Aspect(切面): 是通知和切入点的结合,通知和切入点共同定义了关于

Spring学习(二十五)Spring AOP之增强介绍

课程概要: Spring AOP的基本概念 Spring AOP的增强类型 Spring AOP的前置增强 Spring AOP的后置增强 Spring AOP的环绕增强 Spring AOP的异常抛出增强 Spring AOP的引介增强 一.Spring AOP增强的基本概念 Spring当中的专业术语-advice,翻译成中文就是增强的意思. 所谓增强,其实就是向各个程序内部注入一些逻辑代码从而增强原有程序的功能. 二.Spring AOP的增强类型 首先先了解一下增强接口的继承关系 如上图

Spring学习笔记二

第四章 Spring与数据库 一. DataSource Spring提供了在Spring上下文配置数据源bean的多种方式包括 l 通过JDBC驱动程序定义的数据源 l 通过JNDI查找的数据源 l 连接池的数据源 1. 使用数据源连接池 DBCP(database conection pool)是一个不错的连接池选择. 其中的BasicDataSource的最常用的,因为它在Spring中易于配置.在Spring中可以使用以下代码来配置dbcp. <bean id="datasourc