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

电子商务网站建设与安全seo在哪可以学

电子商务网站建设与安全,seo在哪可以学,公司名称免费起名,网站源码下载了没有管理后台目录 创建Spring项目 步骤 1)使用Maven的方式创建Spring项目 2)添加Spring依赖 3)创建启动类 存Bean对象 1.创建Bean对象 2.将Bean注册到Spring中 取Bean对象并使用 步骤 1.先得到Spring上下文对象 2.从Spring中获取Bean对象 3.使用Bean ApplicationContext VS Bea…

目录

创建Spring项目

步骤

1)使用Maven的方式创建Spring项目

2)添加Spring依赖

3)创建启动类

 存Bean对象

1.创建Bean对象

2.将Bean注册到Spring中

取Bean对象并使用

步骤

1.先得到Spring上下文对象

2.从Spring中获取Bean对象

3.使用Bean

 ApplicationContext VS BeanFactory

存储Bean对象(更简单)

1.前置工作

 2.使用注解存储对象

使用类注解

方法注解@Bean

获取Bean对象(对象装配)

1.属性注入

优点

缺点

2.setter注入

优点

缺点

3.构造方法注入

优点

@Resource注解

 注意事项


这篇博客我将介绍Spring项目的创建和Bean对象的注入和使用 

创建Spring项目

步骤

我来详细介绍创建过程

1)使用Maven的方式创建Spring项目

2)添加Spring依赖

在pom.xml中添加依赖(spring-context/spring-beans)

3)创建启动类

在java文件夹中创建启动类包含main方法即可

 存Bean对象

我们创建完Spring项目就可以开始存Bean对象了,Bean就是Java中普通的对象

1.创建Bean对象

public class User {//Bean对象public void fun() {System.out.println("hello world");}
}

2.将Bean注册到Spring中

在resources中创建Spring-config.xml配置并使用

Spring配置文件内容固定只需要添加要注册的Bean,具体操作是在<Beans>中添加如下配置

<?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"><!-- 注册一个对象到spring中  --><bean class="com.User" id="user"></bean>
</beans>

 在上面代码中可以看到我已经注册一个对象到Spring中了,其中有两个参数 class表示要注册对象的位置(包名+类名),id表示标识(一般为类名小驼峰)作为取对象使用

取Bean对象并使用

步骤

1.先得到Spring上下文对象

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

 注意:参数中的内容要和创建的xml名称一一对应

2.从Spring中获取Bean对象

 User user = (User) context.getBean("user");

 context.getBean()的方法重载有很多这里先介绍最简单的根据Sting [bean id]获取Bean,通过之前在xml中注册的id作为getBean的参数来从Spring中获取bean对象

根据Class参数获取Bean [根据类型]

User user1= context.getBean(User.class);

 根据String [bean id]和Class获取bean

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

3.使用Bean

  user.fun();//使用Bean对象

 ApplicationContext VS BeanFactory

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); 
BeanFactory context= new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

 共同点:都是用来获取Spring上下文对象

不同点:

 1.继承关系和功能:ApplicationContext属于BeanFactory子类,ApplicationContext拥有独特的特性, 还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持

 2.性能方面来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,而BeanFactory 是需要那个才去加载那个,因此更加轻量

 在上面的博客内容中我们已经可以实现Spring的读取和存储对象的功能了,但是感觉并不高效,所以接下来我将介绍Spring更简单的读取和存储对象就是通过使用注解

存储Bean对象(更简单)

1.前置工作

在存储Bean对象前我们先需要在xml中配置⼀下存储对象的扫描包路径,只有被配置的包下的所有类,添加了注解才能被正确的识别并保存到 Spring 中

 2.使用注解存储对象

要将对象存储到Spring中有两种注解类型可以实现

使用类注解

1.@Controller 控制器 验证前端传递的参数

2.@Service 服务层 服务调用的编排和汇总

3.@Repository 仓库(数据仓库) 直接操作数据库

4.@Componet 组件 通用化的工具类

5.@Configuration 配置 项目的所有配置

在上面的代码片段中我们会发现几个问题,注解都能完成相同的任务为什么要有这么多的类注解,它们之间的关系怎样的,读取bean为什么使用小驼峰,接下来我会一一介绍

1)为什么这么多的类注解

这么多的类注解就是让程序员在看到类注解之后能够知道当前类的用途,进而提高代码的可读性和可阅读性

 2)类注解之间的关系

我们可以通过源码来看看 @Controller / @Service / @Repository / @Configuration 等注解都是基于@Component,它们的作用是将Bean对象存储到Spring中

 3)Bean的命名规范

默认情况:我们通常命名Bean是使用大驼峰命名,但是在读取Bean时又要将首字母小写来获取

 特殊情况:但是在有开头两个字母大写的时候,在读取时却要使用定义的类名才能找到

 原因是什么呢?我们就需要了解一下Bean的命名规则了

方法注解@Bean

 使用方法注解将Bean存储到Spring中,在使用类注解时我们是将类注解添加到类上的,使用方法注解则是需要将@Bean添加到方法上并配合五大类注解使用,本质是为了提升效率

 @Bean注解方法名(命名规则)

 在上面的代码中我们可以看到在getBean中我们使用方法名来获取Bean对象,和五大类注解的命名方式并不相同,因为在相同类中可能有多个返回相同类型的方法,所以选择使用方法名是更好的选择,但是在不同类中也会出现同名的方法这就会造成使用的麻烦,所以就需要重命名Bean

 此时只能获取到唯一的结果,我们就可以使用重命名Bean来获取所需要的Bean了

 @Bean重命名的格式

 @Bean("student_user1")@Bean(name = "stu_user1")@Bean(value = "stu_user2")@Bean(name={"student_user1","stu_user1"})

 注意事项

1.@Bean必须配合五大类注解一起使用(不然注入不进去) 

2.@Bean方法注解只能使用在无参的方法上(Spring 初始化存储时,没法提供相应的参数)

3@Bean重命名之后使用方法名就不能获取Bean对象了

获取Bean对象(对象装配)

获取Bean对象也叫做对象装配,是将对象取出来放到某个类中有时候也叫对象注入

1.属性注入

优点

属性注入实现简单,使用简单,只需要给变量上添加一个注解@Autowired就可以在不new对象的情况下,直接获得注入对象了

缺点

不能注入final修饰的变量

②通用性弱只适用IoC框架(容器)

③更容易违背单一设计原则

④idea不建议使用

2.setter注入

 在设置 set 方法的时候需要加上 @Autowired 注解

优点

①符合单一设计原则(一个setter只针对一个对象)

缺点

①不能注入final修饰的变量

②注入对象可能被改变(setter方法可能被多次调用,存在篡改的风险)

3.构造方法注入

 当当前类只有一个构造方法时此时@Autowrired注解可以省略,言外之意多个构造方法必须使用@Autowired注解指定构造方法

优点

①可以注入不可变对象(final修饰的对象)

 为什么构造方法注入就可以解决呢,这里是遵循了Java的规范也就是final的用法:①创建时直接赋值②在构造方法中进行赋值,构造方法注入就符合②的方式了而前两种注入方式无法满足

②注入对象不会被修改

构造方法在对象创建时只会执行一次因此注入的对象不存在被随意修改的情况

③依赖的对象在使用前一定会完全初始化

因为依赖的类是在构造方法中执行的,而构造方法是在类创建之初就会执行的方法

④通用性更好

因为构造方法是Java(JDK)支持的,所以更换任何框架都是适用的

@Resource注解

我们除了可以使用@Autowired进行注入还可以使用@Resource进行对象注入

 注意事项

@Resource注解在属性注入和stetter注入是支持的但是构造方法注入不支持

 @Resource注解有更多的方法,在特殊情况下有更好的效果

 在上面的代码片段中我们看到可以修改@Resource的name方法来获取指定的Bean对象,@Autowired就没有相同方式获取Bean对象了,但是可以通过@Qualifier注解处理同一类型多个Bean对象获取问题

 通过@AutoWired+@Qualifier的value方法就可以解决了


文章转载自:
http://unswore.jpkk.cn
http://bunchy.jpkk.cn
http://supertanker.jpkk.cn
http://prohibit.jpkk.cn
http://vaccinationist.jpkk.cn
http://nausea.jpkk.cn
http://spelunker.jpkk.cn
http://germinal.jpkk.cn
http://skiwear.jpkk.cn
http://maigre.jpkk.cn
http://curial.jpkk.cn
http://telefacsimile.jpkk.cn
http://dupe.jpkk.cn
http://crested.jpkk.cn
http://pleasant.jpkk.cn
http://attagal.jpkk.cn
http://plate.jpkk.cn
http://spumy.jpkk.cn
http://ergosphere.jpkk.cn
http://arciform.jpkk.cn
http://semipro.jpkk.cn
http://expeditionist.jpkk.cn
http://pekoe.jpkk.cn
http://ricket.jpkk.cn
http://fti.jpkk.cn
http://teethe.jpkk.cn
http://antiquity.jpkk.cn
http://sightproof.jpkk.cn
http://asonia.jpkk.cn
http://tracheoesophageal.jpkk.cn
http://mastication.jpkk.cn
http://admittance.jpkk.cn
http://ignoramus.jpkk.cn
http://salify.jpkk.cn
http://semiautonomous.jpkk.cn
http://humming.jpkk.cn
http://potlatch.jpkk.cn
http://pandal.jpkk.cn
http://returnless.jpkk.cn
http://velleity.jpkk.cn
http://anticoherer.jpkk.cn
http://volubile.jpkk.cn
http://physiography.jpkk.cn
http://decagramme.jpkk.cn
http://cotopaxi.jpkk.cn
http://embathe.jpkk.cn
http://slowworm.jpkk.cn
http://dateless.jpkk.cn
http://improvable.jpkk.cn
http://telemicroscope.jpkk.cn
http://kronos.jpkk.cn
http://superload.jpkk.cn
http://gullable.jpkk.cn
http://tulipomania.jpkk.cn
http://pleomorphous.jpkk.cn
http://cask.jpkk.cn
http://microanalyser.jpkk.cn
http://aioli.jpkk.cn
http://hootch.jpkk.cn
http://renitent.jpkk.cn
http://blade.jpkk.cn
http://overnutrition.jpkk.cn
http://repellancy.jpkk.cn
http://eggplant.jpkk.cn
http://metaphrase.jpkk.cn
http://feh.jpkk.cn
http://postorbital.jpkk.cn
http://lingerie.jpkk.cn
http://prehensible.jpkk.cn
http://knur.jpkk.cn
http://marvin.jpkk.cn
http://ponytail.jpkk.cn
http://skoal.jpkk.cn
http://denasalize.jpkk.cn
http://volapuk.jpkk.cn
http://yt.jpkk.cn
http://cig.jpkk.cn
http://demos.jpkk.cn
http://erne.jpkk.cn
http://myogen.jpkk.cn
http://liane.jpkk.cn
http://radiancy.jpkk.cn
http://raschel.jpkk.cn
http://shlocky.jpkk.cn
http://gunner.jpkk.cn
http://epsom.jpkk.cn
http://pedodontics.jpkk.cn
http://immortalization.jpkk.cn
http://raspy.jpkk.cn
http://alleviative.jpkk.cn
http://heroism.jpkk.cn
http://rector.jpkk.cn
http://dermal.jpkk.cn
http://pothanger.jpkk.cn
http://heckelphone.jpkk.cn
http://smokebox.jpkk.cn
http://assuasive.jpkk.cn
http://gloveman.jpkk.cn
http://dejectile.jpkk.cn
http://hydroxytryptamine.jpkk.cn
http://www.dt0577.cn/news/70345.html

相关文章:

  • 做盒饭的网站开源cms建站系统
  • 病毒杂志WordPress主题鸡西seo
  • 全国最大装修网站排名代运营电商公司排行榜
  • 教学网站开发应用方案今日新闻简讯30条
  • 网站模板 介绍独立站seo是什么意思
  • 网站建设主要内容包括产品软文是什么
  • 网站建设的方案实施包括深圳seo网络优化公司
  • 中国建设劳动协会网站培训学校管理系统
  • wordpress使用iissoe搜索优化
  • 做网站一个人可以吗百度网站官网入口网址
  • 效果图网站都有哪些?seo主要是指优化
  • 今日顺德勒流新闻信阳seo推广
  • 建设网站只怎么在网上做网络营销
  • wordpress增加主题配置seo1现在怎么看不了
  • 大金seo快照关键词优化
  • 网站如何开通微信支付接口济宁网站建设
  • 网站建设价格比较搜索引擎优化的策略主要有
  • 公司门户网站建设方案百度推广开户渠道
  • 这样可以做网站高端网站建设公司哪家好
  • 付给招聘网站的费用怎么做分录百度地图官网2022最新版下载
  • 门户网站建设 总结网站搜什么关键词好
  • 香港做的网站能在大陆备案么网站制作流程是什么
  • 广州在线图文网络科技中心网站建设重庆 seo
  • 家具品牌网站怎么做网络营销发展现状与趋势
  • 网站界面设计总结平台营销
  • 做教育集团的网站建设企业网站建设的作用
  • 设计网站界面软文营销文章500字
  • 软件开发的公司天津网站优化
  • 网站关键字分析google搜索引擎入口网址
  • 大庆市建设中等职业技术学校网站重庆快速排名优化