
spring
文章平均质量分 66
chengqiuming
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring 多数据源配置
一配置spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=utf-8spring.datasource.primary.username=testspring.datasource.primary.password=123456spring.datasource.primary.driver-class-name=com.mysql.j.原创 2022-03-17 17:40:56 · 1427 阅读 · 0 评论 -
Spring 单例 Bean 底层原理
一Spring容器理解Spring容器就是一个Map,结构为(beanName,bean对象)。二代码@Componentpublic class OrderService {}@Componentpublic class UserService /*implements InitializingBean*/ { @Autowired private OrderService orderService; public UserService(Or...原创 2022-01-02 19:37:25 · 648 阅读 · 0 评论 -
Spring 推断构造方法
一 只有1个无参构造函数1 代码public class Test { public static void main(String[] args) { // Spring FrameWork 只是 Spring 家族中的一个成员,Spring 一共有24个项目 // context 就是一个构造 Bean 的工厂,或者理解为 Bean 容器 AnnotationConfigApplicationContext context = new A原创 2022-01-02 18:57:39 · 400 阅读 · 0 评论 -
反射注入失败问题解决
一问题提出当使用反射机制,会使得类中注入对象为空,注入失效。二解决方式使用Spring的ApplicationContext可以解决注入失败问题。三代码1工具类/*** Copyright (C), 2020-2020, 软件公司* FileName: ApplicationContextHelper.java* Author: cakin* Date: 2020/8/5* Description: 获取环境中的bean*/package com....原创 2020-08-07 22:03:29 · 1358 阅读 · 0 评论 -
Spring Boot使用JdbcTmplate
一pom<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache...原创 2019-10-19 12:07:25 · 352 阅读 · 0 评论 -
JpaRepository的@NamedQuery查询
一pom<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache...原创 2019-10-16 20:10:18 · 926 阅读 · 0 评论 -
spring的自动装配
一 自动装配有四种自动装配类型:1 byName:寻找和属性名相同的bean,若找不到,则装不上。2 byType:寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。3 constructor:查找和bean的构造参数一致的一个或多个bean,若找不到或找到多个,抛异常。按照参数的类型装配。 4 autodetect:(3)和(2)之间选一个方式。不确定性的处原创 2017-12-19 21:23:23 · 557 阅读 · 0 评论 -
使用spring的特殊bean
一 让spring特殊对待这些bean1 通过配置后加工bean,涉及到Bean和Bean工厂生命周期。2 改变依赖注入,将字符串转换成其它类型。3 从属性文本装载信息,包括信息国际化。4 监听并处理其它bean及spring发布的系统消息。5 知道自己在spring中的唯一表识。二 代码1 DBUtilpackage com.hsp.dispatch;p原创 2017-12-19 21:27:02 · 493 阅读 · 0 评论 -
Spring简介
一 Spring是什么struts是WEB框架(MVC)。Hibernate是ORM框架,处于持久层。Spring是容器框架,用于配置bean,并维护bean之间关系的框架。spring中相关概念:bean:是Java中的任何一种对象,javabean/service/action/数据源/dao。IoC:inverse of control,控制反转。Di:depen...原创 2017-12-03 19:13:40 · 337 阅读 · 0 评论 -
AOP简介
一 简介AOP(Aspect oriented programming)面向切面编程,是对所有对象或者是一类对象编程,核心是在不增加代码的基础上,还增加新功能。汇编(伪机器指令 mov jump)是面向机器的。c语言是面向过程的,常用于系统软件(操作系统,数据库, 杀毒软件,防火墙,驱动..)。java语言是面向对象的。面向切面spring AOP是面向n多对象编程。AOP原创 2017-12-20 18:36:13 · 927 阅读 · 0 评论 -
AOP快速入门案例(一)
一 案例原理图二 编程步骤1 定义接口。2 编写对象(被代理对象=目标对象)。3 编写通知(前置通知目标方法调用前调用)。4 配置beans.xml文件。4.1 配置被代理对象。4.2 配置通知。4.3 配置代理对象,它是ProxyFactoryBean的对象实例。4.3.1 代理接口集4.3.2 织入通知4.3.3 配置被代理对象原创 2017-12-20 18:40:08 · 381 阅读 · 0 评论 -
AOP快速入门案例(二)
一 Test1Servicepackage com.hsp.aop;public class Test1Service implements TestServiceInter,TestServiceInter2 { private String name; public String getName() { r原创 2017-12-20 18:42:02 · 341 阅读 · 0 评论 -
AOP快速入门案例(三)
一 通知类型二 后置通知package com.hsp.aop;import java.lang.reflect.Method;import org.springframework.aop.AfterReturningAdvice;public class MyAfterReturningAdvice implements AfterReturningAdvice {原创 2017-12-20 18:51:04 · 421 阅读 · 0 评论 -
AOP快速入门案例(四)
一 引用通知以前定义的通知类型是在目标对象的方法被调用的周围织入。引入通知给目标对象添加新的方法和属性。二 配置方法<beans xmlns="http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";原创 2017-12-20 18:54:34 · 305 阅读 · 0 评论 -
spring入门案例
一 引入spring的开发包1 最小配置spring.jar:该包把常用的jar都包括。common-logging.jar:日志包。二 创建spring的一个核心文件applicationContext.xmlhibernate的核心是hibernate.cfg.xmlstruts的核心文件是struts-config.xmlspring的一个核心文件是app原创 2017-12-04 22:04:29 · 361 阅读 · 0 评论 -
spring细节讨论
一 传统的方法和使用spring的方法使用spring,没有new对象,我们把创建对象的任务交给spring框架。二 spring的运行原理图三 案例1 UserServicepackage com.service;public class UserService { private String name;原创 2017-12-04 22:13:55 · 434 阅读 · 0 评论 -
spring的DI配合接口编程
一 简介spring开发提倡接口编程,配合di技术可以层与层的解耦。二 项目现在我们体验一下spring的di配合接口编程的,完成一个字母大小写转换的案例。三 步骤1 创建一个接口ChangeLetterpackage com.hsp.inter;public interface ChangeLetter { //声明一个方法原创 2017-12-04 22:17:07 · 612 阅读 · 0 评论 -
雇员管理系统-SSH版(一)
一 介绍ssh(struts+spring+hibernate)三大框架配合使用来开发项目,是目前java ee最流行的开发方式,必须掌握。我们通过一个实际的案例,来介绍整合,我们使用一个雇员薪资管理系统(crud),每加入一个框架,我们就测试通过。二 具体步骤创建web项目1 先搞定spring。2 引入spring开发包。3 编写applicationCon原创 2017-12-21 21:22:59 · 754 阅读 · 0 评论 -
雇员管理系统-SSH版(二)
一 分层二 使用事务管理器来统一管理事务 三 配置缓存1 Hibernate二级缓存的配置 com/hsp/domain/Employee.hbm.xml com/hsp/domain/Departme原创 2017-12-21 21:31:01 · 347 阅读 · 0 评论 -
雇员管理系统-SSH版(三)
一 引入struts开发包二 创建struts-config.xml,在/WEB-INF目录下配置如下:;原创 2017-12-22 19:16:20 · 290 阅读 · 0 评论 -
雇员管理系统-SSH版(四)
让spring接管我们的struts(action控件)一 在struts-config.xml文件中添加如下代码配置 二 在applicationcontext.xml文件中配置我们的action路径我们就可以通过spring容器来获取action,和配置action的一些属性三 通过使用sping来接管我们的ac原创 2017-12-22 19:19:44 · 383 阅读 · 0 评论 -
雇员管理系统-SSH版(五)
解决中文乱码问题一 思路1: 自己配置过滤器步骤:1 开发一个Filterpackage com.hsp.web.filter;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Filter;import javax.servlet.FilterChain;import j原创 2017-12-22 19:26:18 · 291 阅读 · 0 评论 -
雇员管理系统-SSH版(六)
一 spring可以启用注解的方式来配置属性1 重新这样配置bean2 在EmployeeService的属性sessionFactory中添加一个注解@Resource@Resourceprivate SessionFactory sessionFactory;3 在applicationContext.xml中启用注解二 解决懒加载问题思考:如果原创 2017-12-23 18:52:31 · 474 阅读 · 0 评论 -
雇员管理系统-SSH版(七)
添加雇员信息一 MainFrame.jsp My JSP 'MainFrame.jsp' starting page 欢迎${loginuser.name} 你所在的部门名称是${loginuser.department.name } 请选择您要的操作 添加雇员 显示雇员 查询雇员 退出系统 二 a原创 2017-12-23 18:55:11 · 527 阅读 · 0 评论 -
雇员管理系统-SSH版(九)
显示雇员信息一 页面层关键代码MainFrame.jsp My JSP 'MainFrame.jsp' starting page 欢迎${loginuser.name} 你所在的部门名称是${loginuser.department.name } 请选择您要的操作 添加雇员 显示雇员 查询雇员 退出系统原创 2017-12-24 09:28:40 · 447 阅读 · 0 评论 -
雇员管理系统-SSH版(八)
优化业务类一 BasicServiceInterpackage com.hsp.basic;import java.util.List;public interface BasicServiceInter { //声明一些常用的方法 //1.通过id获取对象 public Object findById(Class clazz,java.原创 2017-12-24 09:33:09 · 365 阅读 · 0 评论 -
雇员管理系统-SSH版(十)
修改删除雇员信息一 页面层关键代码my.js$(document).ready(function(){ $(".delid").click(function(){ return window.confirm("是否删除该用户!"); }) })listEmp.jsp原创 2017-12-24 09:37:33 · 487 阅读 · 0 评论 -
spring容纳你的bean的两种方式
一 两种方式bean工厂:最简单的容器,提供了基础的依赖注入支持。创建各种类型的Bean。应用上下文(ApplicationContext):建立在bean工厂基础之上,提供系统架构服务。二 实例1 Studentpackage com.hsp.ioc;//java类都有一个默认的无参构造函数public class Student { Stri原创 2017-12-18 21:41:01 · 786 阅读 · 0 评论 -
spring的生命周期
一 生命周期步骤bean被载入到容器中时,他的生命周期就开始了:1、容器寻找bean的定义信息并实例化。2、使用依赖注入,spring按bean定义信息配置bean的所有属性。3、若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递bean的ID。4、若bean实现了BeanFactoryAware接口,工厂调用setBeanFa原创 2017-12-18 21:46:08 · 1476 阅读 · 0 评论 -
spring配置bean的细节一
一 scope的说明尽量使用 scope=”singleton” ,不要使用prototype,因为这样对我们的性能影响较大。二 如何给集合类型注入值java中主要的集合有几种:map、set、list、数组三 代码1 Departmentpackage com.hsp.collection;import java.util.List;import原创 2017-12-18 21:49:44 · 325 阅读 · 0 评论 -
spring配置bean的细节二
一 内部bean 这种方式的缺点是你无法在其它地方重用这个bar实例,原因是它是专门为foo而用。二 继承配置1、继承2、继承配置3、覆盖父 Bean配置4、可以设置 的abstract 属性为 true, Spring 不会实例化该Bean三 代码1 Stude原创 2017-12-18 21:52:44 · 261 阅读 · 0 评论 -
spring通过构造注入
一 通过构造函数注入set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选的,构造注入的优势是通过构造强制依赖关系,不可能实例化不完全的或无法使用的bean。二 举例1 Employeepackage com.hsp.constructor;public class Employee { private String name; pri原创 2017-12-18 21:55:36 · 393 阅读 · 0 评论 -
Spring概述
一 Spring的简史第一个阶段:xml配置Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,需要把xml配置文件分散到不同的配置文件,那个时候需要频繁地在开发的类和配置文件之间切换。第二个阶段:注解配置Spring 2.x时代,随着JDK 1.5带来的注解支持,Spring提供了声明Bean的注解(如@Component、@Service...原创 2018-08-04 20:21:21 · 294 阅读 · 0 评论 -
spring的依赖注入
一 点睛控制反转和依赖注入在Spring环境下是等同的概念,控制反转是通过依赖注入实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。依赖注入的主要目的是为了解耦,体现一种组合的概念。如果你希望你的类具备某项功能的时候,是继承自一个具有次功能的父类好呢?还是组合另外一个具有此功能的类好呢?答案是不言而喻的,继承一个父类,子类和...原创 2018-08-05 15:16:40 · 319 阅读 · 0 评论 -
Spring的Java配置
一 点睛Java配置是Spring 4.x推荐的配置方式,可以完全替代xml配置。Java配置是通过@Configuration和@Bean来实现的。 @Configuration声明当前类是一个配置类,相对于一个Spring配置的xml。 @Bean注解在方法上,声明当前方法返回值是一个Bean。 何时使用Java配置,何时使用注解配置呢?主要原则是:全局配置使用Ja...原创 2018-08-05 16:06:14 · 540 阅读 · 0 评论 -
Spring的AOP
一 点睛AOP:面向切面编程,相对于OOP面向对象编程。Spring的AOP引入的目的是为了解耦。AOP可以让一组类共享相同的行为。在OOP中,只能通过继承类和实现接口,使得代码的耦合度增强,且类的继承只能是单继承,阻碍更多行为添加到一组类上,AOP弥补了OOP的不足。Spring支持AspectJ的注解式切面编程。(1)使用@Aspect声明是一个切面。(2)使用@After...原创 2018-08-05 17:32:17 · 249 阅读 · 0 评论 -
Spring Bean的Scope
一 点睛Scope描述的是是Spring容器如何新建Bean的实例。Spring的Scope有以下几种,通过@Scope注解来实现。(1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。(2)Prototype:每次调用新建一个Bean的实例。(3)Request:Web项目中,给每一个http request新建一...原创 2018-08-05 20:42:53 · 291 阅读 · 0 评论 -
Spring EL和资源调用
一 点睛Spring EL-Spring表达式语言,支持在xml和注解上使用表达式,类似JSP的EL表达式语言。Spring开发中经常涉及调用各种资源的情况,包含普通文件、网址、配置文件、系统环境变量等,我们可以使用Spring表达式语言实现资源的注入。Spring主要在注解@Value的参数中使用表达式。二 实战演示Spring EL在以下几种情况下使用:注入普通字符 ...原创 2018-08-05 21:45:53 · 498 阅读 · 1 评论 -
Spring Aware
一 点睛Spring的依赖注入的一大亮点就是你所有的Bean对Spring容器存在是没有意识的。也就是说你可以替换成其他容器,比如Google Guice,这时Bean之间的耦合度很低。在实际项目中,不可避免要用到Spring容器本身的功能资源,这时的Bean就必须意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware,若使用了Spring A...原创 2018-08-09 22:09:49 · 380 阅读 · 0 评论 -
Spring的多线程
一 点睛Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor。实际开发中一般是非阻塞的,即异步的,所以我们要在配置类中通过@EnableAsync开启对异步任务的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务。二 ThreadP...原创 2018-08-10 19:50:05 · 13923 阅读 · 0 评论