JAVA_OA管理系统(二):SpringMVC笔记基础篇01注入方法

配置

springapplicationContext.xml导入src根目录(建包导入也可以,建包的标准com.Throne.Font.until),

导入jar,将文件复制粘贴进入\WebRoot\WEB-INF\lib.

 

 

实例化时:

实例化方法如下:
          String conf = "applicationContext.xml";
          ApplicationContext ac = new ClassPathXmlApplicationContext(conf);


 
实例化时,类型强转-Student s=ac.getBean("student",Student.class);(建议的标准)
 
xml配置JavaBean:
    <bean id="student"  class="com.Throne.Font.entity.Student"></bean>



 scope属性


Spring也可以管理Java中的类,比如:
XML文件中:
<bean id="c" class="java.util.Calendar" factory-method="getInstance"></bean>


       JAVA文件中:
        Calendar C = ac.getBean("c",Calendar.class);




 

 

静态工厂模式写出的 C ,默认也是单例的,地址相同.

 

        Student s=ac.getBean("student",Student.class);
        Student s1=ac.getBean("student",Student.class);
        System.out.println(s==s1);


 

      结果:

        True

可以通过修改bean的作用域,来改变创建模式

      修改scope属性,用来指明bean的作用域

<bean id="student"  class="com.Throne.Font.entity.Student" scope="prototype"></bean>


此时每次创建方式为实例工厂,每次创建都会new新的对象

 

implements Serializable

 

进行序列化。

推荐博文:我对Java Serializable(序列化)的理解和总结

 

Bean的生命周期:

 <bean id="JavaBeanexample" class="com.Throne.Font.entity.ExampleBean" init-method="init" destroy-method="destroy" lazy-init="true"></bean>


 
//init-method:创建时实例化
//Destroy-method:销毁方法
//Lazy-init:实例化延迟
 
//销毁在容器停止时执行,Close:调用容器的 close方法 
//用ApplicationContext的父接口AbstractApplicationContext;
//比如:
AbstractApplicationContext  ac=new ClassPathXmlApplicationContext(str);
ac.close;
 




spring的注入方式

基本步骤(该部分为引用)

        Spring注入的基本步骤如下:

  1. 将所有的类在spring-conf.xml中创建bean

    语法如下:

    <bean id="beanId" class="包名.类名">

  2. 对所有依赖的类进行注入

    1. 如果是属性注入,需要为每一个依赖类创建相应的getter和setter方法

    2. 如果是构造方法注入,需要为依赖类创建相应的构造方法            

  3.  在测试方法中测试是否正确注入 


Spring的配置注入(setter)

通过调用无参构造器或者无参static 工厂方法实例化bean之后,调用该bean

 setter方法,即使set注入

 

 

Java:

public class Book implements Serializable{
	private int id;
	private String name;
	public Book() {
	}
	
	public Book(int id, String name) {
		this.id = id;
		this.name = name;
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	


配置:

<bean id="book" class="com.Throne.Font.entity.Book">
   <property name="id" value="12"></property>
   <property name="name" value="平凡的世界"></property>
 </bean>


调用:

Book b=ac.getBean("book",Book.class);
System.out.println(b.getId());
System.out.println(b.getName());


 

构造器注入:

JAVA:

private int id;
	private String name;
	public Book1(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public String toString() {
		return "Book1 [id=" + id + ", name=" + name + "]";
	}


XML配置:

<bean id="book33" class="com.Throne.Font.entity.Book1">
   <property name="id" value="121"></property>
   <property name="name" value="平凡的世界"></property>
 </bean>


 

调用:

Book1 b1=ac.getBean("book1",Book1.class);
System.out.println(b1.toString());


 

结果:

[id=121,name=平凡的世界]

自动装配:

略微了解即可,在自动装配太多时,容易造成混乱.故不常用.

 

XML文件:

 <bean id="teacher" class="com.Throne.Font.entity.Teacher"
      autowire="byType">
   </bean>


 

  autowire的参数值可选有:“default”、“byName”、“byType”、“constructor”、“no”。

        default:根据bean的自省机制决定采用byType还是constructor进行自动装配,如果Bean提供了默认的构造函数,则采用byType,否则采用constructor。

        byName:通过属性名自动注入。

        byType:通过属性类型自动注入。

        constructor:与byType相同,但作用于构造器。

        no:不自动注入。

 

JAVA文件:

public class Teacher  implements Serializable{
	 private int id;
	 private Book1 book;
	 
	public Teacher() {
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Book getBook() {
		return book;
	}
	public void setBook(Book book) {
		this.book = book;
	}
}


执行:

 

Teacher t=ac.getBean("teacher",Teacher.class);
System.out.println(t.getBook().getName());


结果:

平凡的世界


除此之外:

也可以进行Annotation方式(其不太常用,多用于一些小项目)

参考文章:

Spring注入方式介绍


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
项目涉及技术:    1、前端:jsp、css、javascript、jQuery(js框架)、jQueryEasyUi(基于jQuery的前端框架)+BootStrap(前端框架)、dTree插件、富文本编辑器等 2、后台:SpringMvc、Spring、Hibernate(持久层框架)、JPA、MD5加密、Spring Boot、 log4J日志框架、jstl、jstl自定义分页标签等3、项目管理工具:Maven4、数据库:Mysql5、服务器:Tomcat项目开发涉及功能: 1、项目以及数据库搭建2、用户异步登录、退出以及记住用户信息3、自定义分页标签实现(24种样式随意切换)4、拦截器功能实现5、整合前端框架 EasyUi以及Bootstrap6、用户模块信息添加、修改、删除、多条件分页查询、激活、预览、用户账号异步校验、异步加载部门以及职位信息7、角色模块添加、删除、修改、分页查询、角色绑定以及解绑用户、角色绑定以及解绑操作8、Spring事务处理机制讲解9、模块管理增加、修改、删除、分页查询、整合dTree树形插件10、项目实现权限控制11、公告模块整合富文本编辑器12、密码进行MD5加密13、项目改版成Spring Boot实现14、代码机器人使用等等功能其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770 java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习
**smart-web2** 是一套相对简单的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 ----系统管理员用户名为:admin;密码为:123456 ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小写(lower_case_table_names=1) 环境要求 ------------ 1.jdk要求1.7及以上; 2.tomcat6或tomcat7; 3.eclipse版本4.4以上; 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。
**smart-web2** 是一套的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 <br/> ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci)<br/> ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 <br/> ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 <br/> ----系统管理员用户名为:admin;密码为:123456 <br/> ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小写(lower_case_table_names=1) <br /> 环境要求 ------------ 1.jdk要求1.7及以上;<br /> 2.tomcat6或tomcat7; <br /> 3.eclipse版本4.4以上;<br /> 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。<br />

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Font Tian

写的很好,请给我钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值