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

网站建设教程赚找湖南岚鸿认 可网络营销手段有哪些

网站建设教程赚找湖南岚鸿认 可,网络营销手段有哪些,个人小程序怎么做,做阿拉伯语的网站Spring Framework Spring的两个核心IOC控制反转IOC容器依赖注入DIIOC容器实现注解管理BeanBean对象定义Bean对象获取 AOP面向切面编程 添加依赖入门案例注解通过Spring创建Java bean对象 xml管理Bean案例main下创建bean.XMl文件 DI依赖注入案例创建Spring配置文件 bean-di.xml …

Spring Framework

  • Spring的两个核心
    • IOC控制反转
      • IOC容器
      • 依赖注入DI
      • IOC容器实现
      • 注解管理Bean
        • Bean对象定义
        • Bean对象获取
    • AOP面向切面编程
  • 添加依赖
  • 入门案例
    • 注解
    • 通过Spring创建Java bean对象
  • xml管理Bean案例
    • main下创建bean.XMl文件
  • DI依赖注入案例
    • 创建Spring配置文件 bean-di.xml
  • 注解管理Bean案例

Spring的两个核心

IOC控制反转

  • Inverse of Control的简写,为 控制反转,指是将对象的创建和管理交由Spring框架来完成,而不是由开发人员手动创建和管理

  • 即:反转资源获取方向,把自己创建资源、向环境索取资源的方式变为环境自动将资源准备好,我们享受资源注入

IOC容器

  • IoC容器是用来实现IoC思想的一个工具或者说技术手段

  • 它能够自动扫描应用程序中的对象,将它们实例化,并自动注入它们所需要的依赖对象,使应用程序的开发人员能够更加专注于业务逻辑的实现,而不用关心对象的创建和管理。Spring通过IoC容器来管理所有的Java对象的实例化和初始化,控制着对象与对象之间的依赖关系

依赖注入DI

  • DI (Dependency Injection):依赖注入,依赖注入实现了控制反转的思想,是指Spring创建对象的过程中,将对象依赖属性通过配置进行注入
  • 所以 IoC 是一种控制反转的思想,而依赖注入 DI 是对 IoC 的一种具体实现
  • Bean管理:指Bean对象的创建,以及Bean对象中属性的赋值

IOC容器实现

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

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

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

ApplicationContext的主要实现类

类型说明
AnnotationConfigApplicationContext使用注解方式构建IoC容器
ClassPathXmlApplicationContext使用XML配置文件方式构建Spring IoC容器

注解管理Bean

Bean对象定义

在Spring框架规范中,所有由spring管理的对象都称之为Bean对象。
Spring提供了以下多个注解,这些注解可以直接标注在java类上,将它们定义成Spring Bean。

注解说明
@Component该注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅标识容器中的一个组件(Bean),并且可以作用在任何层次,例如Service层、Dao层等,使用时只需将该注解标注在相应的类上即可。
@Repository该注解用于数据访问层(Dao层)的类标识为Spring中的Bean,功能与@Component相同。
@Service该注解通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean,其功能与@Component相同。
@Controller该注解通常作用在控制层(如SpringMVC的Controller),用于将控制层的类标识为Spring中的Bean,其功能与@Component相同。
Bean对象获取
ApplicationContext context = new AnnotationConfigApplicationContext("包扫描路径");
User user = context.getBean(类名.class);

请添加图片描述

AOP面向切面编程

Aspect Oriented Programming 的简写,为 面向切面编程。AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块共同调用的逻辑封装起来,减少系统的重复代码。
请添加图片描述

添加依赖

<dependencies><!-- Maven坐标:https://mvnrepository.com/artifact/org.springframework/spring-context --><!-- 引入spring context依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.24</version></dependency>
</dependencies>

入门案例

注解

  • @Component
    注解描述的类,表示此类交给Spring框架管理
package cn.tedu.spring.example;
import org.springframework.stereotype.Component;@Component
public class User {public void userRun(){System.out.println("User is do something~~");}
}

通过Spring创建Java bean对象

  • AnnotationConfigApplicationContext扫描这个包中所有带有@Component注解的类,并根据这些类创建相应的Spring组件
package cn.tedu.spring.example;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class TestUser {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext("cn.tedu.spring.example");User user1 = context.getBean(User.class);System.out.println("user1 = " + user1);user1.userRun();}
}

请添加图片描述

xml管理Bean案例

  • 在Spring框架中,Bean的配置可以通过 XML 文件来完成。这个文件通常被称为 Spring 配置文件或 Spring XML 文件。
package cn.tedu.spring.example;public class UserXml {private String username;private String password;public void run(){System.out.println("今天天气不错挺风和日丽的~");}
}

main下创建bean.XMl文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userXml" class="cn.tedu.spring.example.UserXml"></bean>
</beans>
package cn.tedu.spring.example;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestUserXml {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");UserXml userXml = (UserXml)context.getBean("userXml");userXml.run();}
}

请添加图片描述

DI依赖注入案例

package cn.tedu.spring.dibase;public class Book {private String bookName;private String bookAuthor;public void setBookName(String bookName) {this.bookName = bookName;}public void setBookAuthor(String bookAuthor) {this.bookAuthor = bookAuthor;}@Overridepublic String toString() {return "Book{" +"bookName='" + bookName + '\'' +", bookAuthor='" + bookAuthor + '\'' +'}';}
}

创建Spring配置文件 bean-di.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="book" class="cn.tedu.spring.dibase.Book"><property name="bookName" value="倚天屠龙记" /><property name="bookAuthor" value="金庸"/></bean>
</beans>
package cn.tedu.spring.dibase;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestBook {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("bean-di.xml");Book book = context.getBean(Book.class);System.out.println("book = " +book);}
}

请添加图片描述

注解管理Bean案例

  • @Value
    ​ @Value注入是将属性值直接注入到bean中,主要用于注入一些简单类型的属性(如字符串、基本类型等);
    使用时需要注意属性的类型和格式,否则会导致注入失败。
  • @Autowired
    @Autowired注入是将对象注入到bean中,并且在注入对象时会根据依赖注入容器中 bean的类型 进行匹配。
    如果容器中有多个类型匹配的bean存在,则会抛出异常。因此,@Autowired注入常用于注入复杂对象、接口类型的属性或其他bean实例。
package cn.tedu.spring.bean;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;@Repository
public class UserDao {@Value("jdbc:mysql://localhost:3306/tedu")private String dbUrl;@Value("root")private String username;private String password;@Value("qwertyuiop")public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "UserDao{" +"dbUrl='" + dbUrl + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}
package cn.tedu.spring.bean;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;@Service
public class UserService {@Value("注册业务")private String serveName;@Autowiredprivate UserDao userDao;@Overridepublic String toString() {return "UserService{" +"serveName='" + serveName + '\'' +", userDao=" + userDao +'}';}
}
package cn.tedu.spring.bean;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class TestUserDao {@Testpublic void testBean(){ApplicationContext context = new AnnotationConfigApplicationContext("cn.tedu.spring.bean");UserDao userDao = context.getBean(UserDao.class);System.out.println("userDao = " + userDao);}public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext("cn.tedu.spring.bean");UserService userService = context.getBean(UserService.class);System.out.println("userService:"+ userService);}
}
http://www.ds6.com.cn/news/40523.html

相关文章:

  • 网站开发 前端 后端济南网络推广网络营销
  • 青岛网站建设青岛新思维seo原创工具
  • 网站空间到期提示软文写作经验
  • 网站建设制作方案seo网站排名助手
  • wordpress转代码青岛关键词优化seo
  • 深圳市做网站推广什么软件可以长期赚钱
  • dede 做手机网站营销网站建设软件下载
  • 西安手机网站零食软文范例300字
  • 企业网站的制作周期爱链网中可以进行链接买卖
  • 校园网站建设的意见与建议新闻发稿发布平台
  • 免费打开的网站网络营销方案有哪些
  • 网站正在建设中 源码天津百度分公司
  • 做帖子网站百度搜索网页
  • 做云图的网站网页设计用什么软件做
  • 重庆企业网站的推广正规专业短期培训学校
  • 实用的网站郑州seo优化顾问阿亮
  • 网络服务商网站网络营销成功案例分析其成功原因
  • 微信群投票网站怎么做青海百度关键词seo
  • 自己弄个网站网站外链怎么发布
  • 网站开发方案关键词怎么写
  • 试用网站 源码seo优化包括
  • wordpress重定向次数过多seo搜索引擎优化工资薪酬
  • 怎么做外网的网站电商运营培训哪个机构好
  • 做响应式网站制作天津短视频seo
  • 给网站做友情链接免费外链发布平台在线
  • 做网站用多大的服务器关键词优化排名用什么软件比较好
  • wordpress onepage重庆seo网络优化师
  • 怎么弄免费的空间做网站小说排行榜百度搜索风云榜
  • 联系我们网页设计图片北京seo排名方法
  • 视频生成链接网站重庆百度推广seo