当前位置: 首页 > news >正文

河南省建设科技网站怎么让网站排名下降

河南省建设科技网站,怎么让网站排名下降,网站毕业设计论文模板,wordpress说说伪静态目录 一、简介 1、什么是Spring? 2、Spring框架的核心特性 3、优点 二、IOC容器 介绍 1、获取资源的传统方式 2、控制反转方式获取资源 3、DI 4、IOC容器在Spring中的实现 入门案例 1、创建Maven Module 2、引入依赖 3、创建HelloWorld类 4、在Spring的配…

目录

一、简介

1、什么是Spring?

 2、Spring框架的核心特性

3、优点

二、IOC容器

介绍

 1、获取资源的传统方式

2、控制反转方式获取资源 

3、DI 

4、IOC容器在Spring中的实现

 入门案例

1、创建Maven Module

2、引入依赖

 3、创建HelloWorld类

 4、在Spring的配置文件中配置bean

5、创建测试类测试 

6、思路

7、注意 

三、基于注解管理Bean

3.1、Bean对象定义及获取

3.2、Bean对象定义 

3.3、Bean对象获取

3.4、应用分析 

3.5、依赖注入

3.5.1、 @Value注解

3.5.2、@Autowired注解 


一、简介

下载地址:

Spring | ProjectsLevel up your Java code and explore what Spring can do for you.icon-default.png?t=N7T8https://spring.io/projects

1、什么是Spring?

        Spring是一个开源的Java开发框架,它简化了Java应用程序的开发过程,提供了一套全面的、一致性的编程模型,使得开发者可以更轻松地构建可扩展、可维护的企业级应用程序。

 2、Spring框架的核心特性

  1. 控制反转(IoC):Spring通过IoC容器管理对象之间的依赖关系,简化了对象之间的耦合。
  2. 面向切面编程(AOP):Spring的AOP支持允许开发者在程序运行过程中动态地添加功能(例如事务管理、日志记录等)。
  3. 数据访问:Spring提供了对多种数据访问技术的支持,如JDBC、ORM框架、NoSQL等。
  4. 事务管理:Spring提供了一致的事务管理抽象,使得开发者可以在不同的事务管理实现之间切换。
  5. MVC框架:Spring的MVC框架使得开发者可以轻松地构建Web应用程序。
  6. 安全性:Spring提供了对身份认证和授权的支持,帮助开发者构建安全的应用程序。

3、优点

  1. 轻量级:Spring框架核心库非常轻量,通过模块化的设计,开发者可以选择所需的模块,避免了不必要的依赖。

  2. 松耦合:Spring框架采用依赖注入(DI)和面向接口编程的方式,使得应用程序各个组件之间的耦合度降低,易于维护和测试。

  3. 面向切面编程:Spring框架支持面向切面编程(AOP),可以解耦横切关注点(如事务管理、日志记录等),提高代码的复用性和可维护性。

  4. 容器管理:Spring框架提供了一个容器(IoC容器),可以统一管理应用程序中的对象,通过配置文件或注解方式管理对象的创建和销毁。

  5. 事务管理:Spring框架提供了强大的事务管理支持,可以通过声明式事务的方式简化事务管理的代码,减少样板代码的编写。

  6. 灵活性:Spring框架提供了丰富的扩展机制,可以与其他框架(如Hibernate、MyBatis等)无缝集成,也支持多种数据库连接池、日志等第三方组件的集成。

  7. 测试支持:Spring框架提供了对单元测试和集成测试的强大支持,可以方便地测试代码的正确性和性能。

  8. 社区活跃:Spring框架是一个开源项目,拥有庞大的社区支持和活跃的开发者社群,可以获得丰富的文档、教程和解决方案。

        总的来说,Spring框架是一款功能强大、灵活性高、易于扩展和维护的Java开发框架,适用于各种规模和类型的应用程序开发。

二、IOC容器

介绍

IOC:控制反转(Inversion of Control)

 1、获取资源的传统方式

        在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。

2、控制反转方式获取资源 

        反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。 

3、DI 

DI:Dependency Injection,翻译过来是依赖注入。

        DI 是 IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。

        IOC 就是一种反转控制的思想, 而 DI 是对 IOC 的一种具体实现。

4、IOC容器在Spring中的实现

        Spring 的 IOC 容器就是 IOC 思想的一个落地的产品实现。IOC 容器中管理的组件也叫做 bean。在创建bean 之前,首先需要创建 IOC 容器。Spring 提供了 IOC 容器的两种实现方式:

        1、BeanFactory

                这是IOC容器的基本实现,是Spring内部使用的接口。面向Spring本身,不提供给开发人员使用。

        2、ApplicationContext

                BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的Bean Factory。

 入门案例

1、创建Maven Module
2、引入依赖
<dependencies><!-- 基于Maven依赖传递性,导入spring-context依赖即可导入当前所需所有jar包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.1</version></dependency><!-- junit测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>
</dependencies>
 3、创建HelloWorld类
public class HelloWorld {public void sayHello(){System.out.println("helloworld");}
}

 4、在Spring的配置文件中配置bean
<bean id="helloworld" class="com.atguigu.spring.bean.HelloWorld"></bean>
5、创建测试类测试 
@Test
public void testHelloWorld(){ApplicationContext ac = newClassPathXmlApplicationContext("applicationContext.xml");HelloWorld helloworld = (HelloWorld) ac.getBean("helloworld");helloworld.sayHello();
}
6、思路

7、注意 

Spring 底层默认通过反射技术调用组件类的无参构造器来创建组件对象,这一点需要注意。

三、基于注解管理Bean

3.1、Bean对象定义及获取

        在Spring框架规范中,所有由spring管理的对象都称之为Bean对象

3.2、Bean对象定义 

        Spring提供了以下多个注解,这些注解可以直接标注在java类上,将它们定义成Spring Bean。

注解说明
@Component该注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅标识容器中的一 个组件(Bean),并且可以作用在任何层次,例如Service层、Dao层等,使用时只需将该注解标注在相应的类上即可。
@Respository该注解用于数据访问层(Dao层)的类标识为Spring中的Bean,功能与 @Component相同。
@Service该注解通常作用在业务层(Service层),用于将业务层的类标识为Spring中的 Bean,其功能与@Component相同。
@Controller该注解通常作用在控制层(如SpringMVC的Controller),用于将控制层的类标 识为Spring中的Bean,其功能与@Component相同。

3.3、Bean对象获取

        通过ApplicationContext对象获取:调用ApplicationContext对象的getBean()方法,传入对应类的类型 即可获取该Bean对象,示例:

ApplicationContext context = new AnnotationConfigApplicationContext("包扫描路径");
User user = context.getBean(类名.class);

3.4、应用分析 

在 cn.spring 下创建子包 bean ,进行 bean 对象的创建及获取、

第1步:在bean包下创建类:UserDao

@Repository
public class UserDao {private String databaseUrl;private String username;private String password;
}

 第2步:在bean包下创建测试类:UserDaoTest

public class TestUserDao {@Testpublic void testBean(){ApplicationContext context = new
AnnotationConfigApplicationContext("cn.spring.bean");UserDao userDao = context.getBean(UserDao.class);System.out.println("userDao = " + userDao);}
}

说明:将java类中的 @Repository注解 替换为 @Component注解、@Service注解、@Controller注 解 都是可以的。

3.5、依赖注入

3.5.1、 @Value注解

        @Value注入是将属性值直接注入到bean中,主要用于注入一些简单类型的属性(如字符串、基本类型 等); 使用时需要注意属性的类型和格式,否则会导致注入失败。

示例:在UserDao中进行属性值注入

第1步:在UserDao的属性中通过@Value注解注入属性值

@Repository
public class UserDao {@Value("jdbc:mysql://localhost:3306/")private String databaseUrl;@Value("root")private String username;@Value("root")private String password;@Override
public String toString() {return "UserDao{" +"databaseUrl='" + databaseUrl + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}

第2步:执行测试方法进行测试

3.5.2、@Autowired注解 

        @Autowired注入是将对象注入到bean中,并且在注入对象时会根据依赖注入容器中bean的类型进行匹 配。如果容器中有多个类型匹配的bean存在,则会抛出异常。因此,@Autowired注入常用于注入复杂 对象、接口类型的属性或其他bean实例。

3.5.2.1、 根据类型注入 

定义UserService类,并注入UserDao对象

第1步:在包bean下创建 UserService 类

@Service
public class UserService {@Value("注册业务")private String sname;// Autowired自动装配@Autowiredprivate UserDao userDao;@Overridepublic String toString() {return "UserService{" +"sname='" + sname + '\'' +", userDao=" + userDao +'}';}
}

第2步:调整测试方法

@Test
public void testAuto(){ApplicationContext context = new
AnnotationConfigApplicationContext("cn.spring.bean");UserService userService = context.getBean(UserService.class);System.out.println("userService = " + userService);
}

第3步:执行测试方法测试

http://www.yayakq.cn/news/557394/

相关文章:

  • 镇江还有什么网站吗seo快速提高网站转化率
  • 网站建设方案交换认苏州久远网络wordpress修改首页调用
  • 网站推广专家十年乐云seo网站头部导航
  • 北京 工业网站建设公司凉山州城乡和住房建设厅网站
  • 配送系统网站怎么做网站空间如何申请
  • wordpress做游戏网站wordpress主题dux1.9
  • 太平洋保险网站怎样做视频网站
  • soso网站提交入口深圳怎么做网络推广软仿
  • 做火锅加盟哪个网站好快速建设网站外链
  • 阳江建设网站wordpress 文章时间轴
  • 帮忙做ppt赚钱的网站北京电力建设公司现状
  • 在哪里可以做海外淘宝网站wordpress和apache
  • 南和网站建设公司太原网站建设龙之向导外贸网站 网络服务
  • 好用网站推荐免费软文是啥意思
  • 潍坊站总站人工服务电话xampp如何安装wordpress
  • 池州有哪些做网站的手机网站设计思路
  • 用什么可以做网站服务器里怎么建设网站
  • 网站建设类行业资讯私密浏览器免费观看
  • 网站建设谈单流程人才网网站模板
  • 做网站如何做视频网站平台建设属于固定资产吗
  • 织梦确定网站风格购物网站seo关键词定位
  • 南阳网站怎么推广优酷专门给马天宇做的网站
  • 网站架构策划wordpress做网店
  • 网站建设项目进度计划开封seo推广
  • 微信企业号网站开发软件wordpress 邮件认证
  • 海门住房和城乡建设部网站wordpress宽屏主题
  • 邯山网站制作陕西专业网站建设哪家好
  • 建设银行绑定手机号码网站郑州网站建设方案
  • 深圳市网站推广公司网站建设模板代码下载
  • 自己编辑网站怎么做的承德市宽城县建设局网站