Spring框架构造注入type属性实例详解
这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
进行测试,验证一个问题,废话不多说了,上代码进行比较
package service.impl; import service.UserService; import dao.UserDao; import entity.User; /** * 用户业务类,实现对User功能的业务管理 */ public class UserServiceImpl implements UserService { // 声明接口类型的引用,和具体实现类解耦合 private UserDao dao; private String s1; private String s2; private int i1; // 生成无参构造方法 public UserServiceImpl() { } // 带参数构造方法 为dao进行赋值 public UserServiceImpl(UserDao dao) { this.dao = dao; } public UserServiceImpl(UserDao dao,String s1) { this.dao = dao; this.s1=s1; } public UserServiceImpl(String s2,UserDao dao) { this.dao = dao; this.s2=s2; } public UserServiceImpl(int i1,UserDao dao) { this.dao = dao; this.i1=i1; } public UserDao getDao() { return dao; } // dao 属性的setter访问器,会被Spring调用,实现设值注入 public void setDao(UserDao dao) { this.dao = dao; } public void addNewUser(User user) { // 调用用户DAO的方法保存用户信息 dao.save(user); System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("i1="+i1); } }
核心配置文件:
<bean id="UserService" class="service.impl.UserServiceImpl"> <!--通过构造函数的方式,实现构造注入 --> <constructor-arg> <ref bean="userDao" /> </constructor-arg> <constructor-arg> <value>123</value> </constructor-arg> </bean>
运行结果:
保存用户信息到数据库 s1=null s2=123 i1=0
由此可见,是没有附上值的 ,为i1变量
解决办法:对核心配置文件进行修改,使用type属性,指定数据类型
运行结果:
保存用户信息到数据库 s1=null s2=null i1=123
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
SpringBoot2.0 整合 Dubbo框架实现RPC服务远程调用方法
一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的表示只对 Dubbo 内部交互. 2)图中背景方块 Consumer, Provider, Registry, Monitor 代表部署逻辑拓扑节点. 3)图中蓝色虚线为初始化时调用,红色虚线为运行时异步调用,红色实线为运行时同步调用. 4)图中只包含 RPC
-
SpringBoot框架RESTful接口设置跨域允许
跨域 跨域请求是指浏览器脚本文件在发送请求时,脚本所在的服务器和请求的服务器地址不一样.跨域是有浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制, 同源策略:是指协议.域名.端口都要相同,其中有一个不同都会产生跨域 SpringBoot框架RESTful接口解决跨域 此处是有配置文件的方式来解决的 package com.prereadweb.config.cors; import org.springframework.context.annotation.Bean; im
-
SpringBoot框架集成token实现登录校验功能
简介 公司新项目,需要做移动端(Android和IOS),登录模块,两个移动端人员提出用token来校验登录状态,一脸懵懵的,没做过,对于token的基本定义都模棱两可,然后查资料查查查,最终OK完成,写篇博客记录一下 思路: 1.基于session登录 基于session的登录(有回话状态),用户携带账号密码发送请求向服务器,服务器进行判断,成功后将用户信息放入session,用户发送请求判断session中是否有用户信息,有的话放行,没有的话进行拦截,但是考虑到时App产品,牵扯到要判断用户
-
SpringBoot2 集成log4j2日志框架的实现
前言 Log4j2是 Log4j 的进化版本,并提供了许多 Logback 可用的改进,同时解决了 Logback 体系结构中的一些固有问题.而且日志处理中我们会用到kafka作为日志管道.而kafka客户端依赖与Logback的兼容不是很完美,你可以选择排除依赖冲突或者使用Log4j2 . <!-- more --> 排除Logback依赖 Spring Boot 2.x默认使用Logback日志框架,要使用 Log4j2必须先排除 Logback. <dependency> &
-
Spring框架应用的权限控制系统详解
Spring框架是一个优秀的多层J2EE系统框架,Spring本身没有提供对系统的安全性支持.Acegi是基于Spring IOC 和 AOP机制实现的一个安全框架.本文探讨了Acegi安全框架中各部件之间的交互,并通过扩展Acegi数据库设计来实现基于Spring框架的应用的安全控制方法. 一.引言 近年来,随着Internet技术的迅猛发展,计算机网络已深入到了人们的工作.学习和日常生活中,于是,怎样构建安全的web应用也成为了当前最热门的话题.Spring是一个基于IoC(Inversio
-
SpringMVC框架实现图片上传与下载
本文实例为大家分享了SpringMVC框架实现图片上传与下载的具体代码,供大家参考,具体内容如下 1.新建一个Maven webapp项目,引入需要用的夹包,pom.xml文件的依赖包如下: <dependencies> <!-- 用于生成图片的缩略图 --> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId>
-
SSM框架中测试单元的使用 spring整合Junit过程详解
测试类中的问题和解决思路 问题 在测试类中,每个测试方法都有以下两行代码: ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); IAccountService as = ac.getBean("accountService",IAccountService.class); 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常.所以又不能轻易删掉. 解决思路分析 针对
-
SpringBoot2.0整合Shiro框架实现用户权限管理的示例
GitHub源码地址:知了一笑 https://github.com/cicadasmile/middle-ware-parent 一.Shiro简介 1.基础概念 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.作为一款安全框架Shiro的设计相当巧妙.Shiro的应用不依赖任何容器,它不仅可以在JavaEE下使用,还可以应用在JavaSE环境中. 2.核心角色 1)Subject:认证主体 代表当前系统的使用者,就是用户,在Shiro的认证中,
-
Spring框架构造注入type属性实例详解
这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 进行测试,验证一个问题,废话不多说了,上代码进行比较 package service.impl; import service.UserService; import dao.UserDao; import entity.User; /** * 用户业务类,实现对User功能的业务管理 */ public class UserServi
-
Spring框架构造注入操作实战案例
本文实例讲述了Spring框架构造注入操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLo
-
Spring Cloud 覆写远端的配置属性实例详解
应用的配置源通常都是远端的Config Server服务器,默认情况下,本地的配置优先级低于远端配置仓库.如果想实现本地应用的系统变量和config文件覆盖远端仓库中的属性值,可以通过如下设置: spring: cloud: config: allowOverride: true overrideNone: true overrideSystemProperties: false overrideNone:当allowOverride为true时,overrideNone设置为true,外部的配
-
基于Spring + Spring MVC + Mybatis 高性能web构建实例详解
一直想写这篇文章,前段时间痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/Eliteams/quick4j 点击打开 源码地址:https://gi
-
Spring MVC自定义日期类型转换器实例详解
Spring MVC自定义日期类型转换器实例详解 WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查询到数据,然后在jsp页面上格式化,最后展示给用户.但是这次不同,这次我纯属操作数据,没有页面.直接从数据库拿数据给它们返数据.它们给我传数据我持久化数据,说到这里一个小问题就默默的来了. 首先把问题还原一下吧(这是一个数据导出功能),下图中用红框圈
-
Spring AOP 动态多数据源的实例详解
Spring AOP 动态多数据源的实例详解 当项目中使用到读写分离的时候,我们就会遇到多数据源的问题.多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源.例如在一个spring和Mybatis的框架的项目中,我们在spring配置中往往是配置一个dataSource来连接数据库,然后绑定给sessionFactory,在dao层代码中再指定sessionFactory来进行数据库操作. 正如上图所示,每一块都是指定绑死的,如果是多个数据源,也只能是下图中那种方式. 可看
-
Spring boot注解@Async线程池实例详解
这篇文章主要介绍了Spring boot注解@Async线程池实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法.调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行. 1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent
-
JSP 中Spring组合注解与元注解实例详解
JSP 中Spring组合注解与元注解实例详解 摘要: 注解(Annotation),也叫元数据.一种代码级别的说明.它与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明 1. 可以注解到别的注解上的注解称为元注解,被注解的注解称为组合注解,通过组合注解可以很好的简化好多重复性的注解操作 2. 示例组合注解 import org.springframework.context.annotation.ComponentScan; im
-
Bootstrap的aria-label和aria-labelledby属性实例详解
aria-label 正常情况下,form表单的input组件都有对应的label.当input组件获取到焦点时,屏幕阅读器会读出相应的label里的文本. <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title>demo</title> <link rel="stylesheet" href="https://
-
mybatis防止SQL注入的方法实例详解
SQL注入是一种很简单的攻击手段,但直到今天仍然十分常见.究其原因不外乎:No patch for stupid.为什么这么说,下面就以JAVA为例进行说明: 假设数据库中存在这样的表: table user( id varchar(20) PRIMARY KEY , name varchar(20) , age varchar(20) ); 然后使用JDBC操作表: private String getNameByUserId(String userId) { Connection conn
随机推荐
- Javascript lastIndex 正则表达式的一个疑惑
- EXECUTE IMMEDIATE用法小结
- Oracle中检查是否需要重构索引的sql
- 给artDialog 5.02 增加ajax get功能详细介绍
- 翻译整理的jQuery使用查询手册
- java 中 zookeeper简单使用
- 详解iOS应用开发中Core Data数据存储的使用
- Three.js如何实现雾化效果示例代码
- asp实现禁止搜索引擎蜘蛛访问的代码
- hibernate更新数据方法小结
- C#截图程序类似腾讯QQ截图实现代码
- js 上传文件预览的简单实例
- php使用str_replace替换多维数组的实现方法分析
- jQuery实现购物车计算价格功能的方法
- 扩展IE中一些不兼容的方法如contains、startWith等等
- 在中国银行查询美元即时汇率,该看基准价吗?
- Java编程实现服务器端支持断点续传的方法(可支持快车、迅雷)
- JavaScript面试出现频繁的一些易错点整理
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- 使VMware ip与本机ip处于同一网段的方法