博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring】2.建立Spring程序
阅读量:3958 次
发布时间:2019-05-24

本文共 2073 字,大约阅读时间需要 6 分钟。

目录

在这里插入图片描述

2.1 导入jar包

注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .

xml
org.springframework
spring-webmvc
5.2.7.RELEASE

2.2编写代码

  • UserDao
public interface UserDao {
public void getUser();}
  • UserDaoImpl
public class UserDaoImpl implements UserDao{
public void getUser() {
System.out.println("获取用户数据"); }}
  • UserDaoSqlImpl
public class UserDaoSqlImpl implements UserDao{
public void getUser() {
System.out.println("Sql获取用户数据"); }}
  • UserServise
public interface UserService {
public void getUser();}
  • UserServiceImpl
public class UserServiceImpl implements UserService{
private UserDao userDao; public void setUserDao(UserDao userDao) {
this.userDao = userDao; } public void getUser() {
userDao.getUser(); }}
  • beans.xml
  • Mytest
public class Mytest {
public static void main(String[] args) {
ApplicationContext context1 = new ClassPathXmlApplicationContext("beans.xml"); UserServiceImpl userServiceImpl = (UserServiceImpl) context1.getBean("UserServiceImpl"); userServiceImpl.getUser(); }}

OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配 !

对象是由Spring创建的

对象的属性是由Spring容器设置的

这个过程就叫控制反转 (更方便,更解耦):

  • 控制:谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是 由Spring来创建的
  • 反转:程序本身不创建对象 , 而变成被动的接收对象
  • 依赖注入 : 就是利用set方法来进行注入的**

2.3 无法运行问题

在这里插入图片描述

在这里插入图片描述

2.4 配置解析

2.4.1 别名

  • alias 设置别名 , 为bean设置别名 , 可以设置多个别名

2.4.2 Bean的配置

2.4.3 property

property:用来配置读取xml文件里面的对象,格式是键-值

2.4.4 import

  • 团队的合作通过import来实现。当有多个bean时(bean bean1 bean2 bean3),如果需要整合,则把bean2和bean3导入到bean1中
import resource="{path}/beans.xml"/>

2.5 Bean的作用域

在这里插入图片描述

2.5.1scope=“singleton” 单例(默认设置)

User user = context.getBean("user2", User.class);    User user = context.getBean("user2", User.class);

当我写两个user2,输出还是一个

2.5.2scope="prototype"原型模式(可输出多个重复)

当一个bean的作用域为Prototype,表示一个bean定义对应多个对象实例。

Request、Session、application只能在web开发中使用

转载地址:http://zkazi.baihongyu.com/

你可能感兴趣的文章
18-python之while循环,for循环与else的配合
查看>>
19-python之字符串简单介绍
查看>>
20-python之切片详细介绍
查看>>
P24-c++类继承-01详细的例子演示继承的好处
查看>>
P8-c++对象和类-01默认构造函数详解
查看>>
P1-c++函数详解-01函数的默认参数
查看>>
P3-c++函数详解-03函数模板详细介绍
查看>>
P4-c++函数详解-04函数重载,函数模板和函数模板重载,编译器选择使用哪个函数版本?
查看>>
P5-c++内存模型和名称空间-01头文件相关
查看>>
P6-c++内存模型和名称空间-02存储连续性、作用域和链接性
查看>>
P9-c++对象和类-02构造函数和析构函数总结
查看>>
P10-c++对象和类-03this指针详细介绍,详细的例子演示
查看>>
bat备份数据库
查看>>
linux数据库导出结果集且比对 && grep -v ---无法过滤的问题
查看>>
shell函数与自带变量
查看>>
linux下shell获取不到PID
查看>>
sort详解
查看>>
linux,shell中if else if的写法,if elif
查看>>
shell中单引号、双引号、反引号的区别
查看>>
shell脚本死循环方法
查看>>