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

做网站能接到模具单吗免费建站建站abc网站

做网站能接到模具单吗,免费建站建站abc网站,在线支付网站制作,国家城乡和住房建设部网站目录 一. Bean基本注解开发 二. Bean依赖注入注解开发 三. 非自定义Bean注解开发 四. Spring配置类的开发 五. Spring配置其他注解 5.1 Primary 5.2 Profile 六. Spring注入的解析原理 七. Spring注解方式整合第三方框架 一. Bean基本注解开发 Spring除了xml配置文件…

目录

一. Bean基本注解开发

二. Bean依赖注入注解开发

三. 非自定义Bean注解开发

四. Spring配置类的开发

五. Spring配置其他注解

5.1 @Primary

5.2 @Profile

六. Spring注入的解析原理

七. Spring注解方式整合第三方框架


一. Bean基本注解开发

Spring除了xml配置文件进行配置之外,还可以使用注解方式进行配置,注解方式慢慢成为xml配置的替代方案。

基本Bean注解,我们主要是使用注解的方式替代原有的xml的<bean>标签及其标签属性的配置

使用@Component注解替代<bean>标签。

原先我们配置是这样做的

而现在使用注解是这样的

之前的xml配置id是作为其beanName,然后根据全限定名寻找,现在我们的注解就在这个类上所以不需要全限定名,还要beanName我们可以给注解参数进行赋值。

这个时候我们使用之前的加载配置文件getBean就拿不到对应的对象了。

我们需要告诉他我们是用注解的方式进行注入的,需要在配置文件中进行注解组件扫描。

在之前spring基于xml开发中,我们做的自定义注解demo,那里的注解组件扫描是我们写死的,现在我们可以在配置文件中进行配置。

其实我们也可以基于之前的知识现在明白,这个配置不仅仅是扫描注解组件,还使用了Spring的后处理器进行"加工",其实后面spring很多的扩展点都是基于后处理器进行的。

在之前进行xml配置bean的时候,我们说过如果一个bean我们没有指定beanName,也就是没有在配置中写id,那么默认的beanName就是全限定名,而这里如果我们在@Component中没有写value参数,那么会是什么情况呢?

运行测试我们可以发现找不到这个bean了,那么我们看看内部情况。

我们可以发现如果没有写value,那么默认的beanName就是类名首字母小写。

我们使用@Component代替了<bean>标签,那么bean标签中属性如何进行配置呢?

我们知道JavaEE是分层的,为了语义化各层,所以@Component还有一些衍生注解:@Repository、@Service、@Controller。

@Repository在Dao层类上使用、@Servive在Service层类上使用、@Controller在web层类上使用

还有一些不属于任何层的我们就使用@Component。

二. Bean依赖注入注解开发

Bean的依赖注入注解,主要是使用注解的方式代替xml的<property>标签完成属性的注入操作

Spring提供了以下注解用于在Bean内部进行属性注入

  • @Value:使用在字段或方法上,用于注入普通数据
  • @Autowired:使用在字段或方法上,用于根据数据类型注入引用数据
  • @Qualifier:使用在字段或方法上,配合@Autowired,根据名称注入
  • Resource:使用在字段或方法上,根据类型或名称进行注入

使用Value注解进行username这个属性的注入,注入的值为zhangsan,并且打印一下username验证是否注入。

接下来我们看看使用@Autowired注入对象,这个也是后期最常用的注解。

形如之前的属性注入,我们也是可以使用set进行注入的。

接下来我们再看看配合@Autowired使用的@Qualifier是如何使用的。

此时我有两个UserDao对象,而@Autowired是根据类型进行注入的,如何判断注入的是哪个呢?

这个时候就可以使用@Qualifier,根据名称进行注入了。

最后我们看@Resource,不指定名称参数时,根据类型注入,指定名称就根据名称注入

@Autowired的扩展:

我们也可以这样使用将其注入。

三. 非自定义Bean注解开发

非自定义Bean不能像自定义Bean一样使用@Component进行管理,非自定义Bean要通过工厂的方式进行实例化使用@Bean标注方法即可,@Bean的属性为beanName,如不指定为当前工厂方法名称。

    

这里要注意的点是配置了@Bean的方法的类是要被Spring管理的。

还有就是要是我们想在方法中注入属性该如何操作呢?

在这里我们可以使用@Value进行普通属性注入,还可以使用@Qualifier进行指定名称的对象注入,但是@Qualifier不是需要配合@Autowired一起使用吗?

在属性注入的时候可以直接使用@Qualifier对指定名称的对象进行注入,并且如果使用@Autowired进行根据类型的注入,@Autowired可以省略。

四. Spring配置类的开发

上面的注解我们学习的都是替代xml文件中<bean>标签的,那么其他的配置我们是否也能用注解进行配置呢?也就是完全不需要配置文件。

接下来我们学习的就是配置类的注解开发。

我们使用这些注解来替代原先xml中的配置

这里的@Configuration也是@Component的衍生。

@ComponentScan是组件扫描配置

@PropertySource用于加载外部properties文件

并且这个时候在测试类中我们不再是以xml的方式加载spring容器,而是以配置类的形式。

五. Spring配置其他注解

5.1 @Primary

@Primary注解用于标注相同类型的Bean优先被使用权,@Primary是Spring3.0引入的,与@Component和@Bean一起使用,标注该Bean的优先级更高,则在通过类型获取Bean或通过@Autowired根据类型进行注入时,会选择优先级更高的。

5.2 @Profile

@Profile注解的作用同于xml配置时学习的<beans profile="test">是切换环境使用的。

@Profile可以标注在类或方法上,标注当前产生的Bean从属于哪个环境,只有激活当前环境,被标注的Bean才能被注入到Spring容器中,不指定环境的Bean,任何环境都可以注入到Spring容器。

可以使用以下两种方式指定被激活的环境:

  • 使用命令行动态参数,虚拟机参数位置加载 -Dspring.profiles.active=test
  • 使用代码方式指定环境变量,System.setProperty("spring.profiles.active","test");

六. Spring注入的解析原理

学习前先复习一下这张图。

这里由于注解的方式细节过多,这里介绍xml方式是如何注入的。

xml的方式进行注入是通过自定义命名空间进行的,我们先找到其对应的映射文件。

进入这个ContextNamespaceHandler

进入其对应的解析器ComponentScanBeanDefinitionParser,这里我们看关键方法

再来进入这个doScan,这里我们也看关键代码,将需要注入的对象都注册到BeanDefinitionMap中。

Spring注解的解析原理也是如此,最后的两步也是需要走doScan和register方法进行注册到BeanDefinitionMap中。

七. Spring注解方式整合第三方框架

第三方框架整合,依然使用MyBatis作为整合对象,之前已经使用xml方式整合了MyBatis,现在使用注解的方式无非就是将xml标签替换为注解,将xml配置文件替换为配置类即可。

之前xml方式整合MyBatis:

接下来我们就将其替换为注解的方式。

并且写一个方法进行测试

到这里Spring基于注解开发就差不多解释完了,这里我分享的比较来自于学习的课程b站的黑马spring课程,感兴趣可以看看。

http://www.tj-hxxt.cn/news/75044.html

相关文章:

  • 公司做网站该注意哪些企业网站推广方案
  • 视频号推广方法seo优化网站推广
  • 平台网站建设设计希爱力5mg效果真实经历
  • 郑州动力无限网站建设网页制作成品
  • 蚌埠网络推广公司苏州seo关键词优化外包
  • 怎么做多个网站单点登录北京网站优化方法
  • 做期货看什么网站数字经济发展情况报告
  • 怎么做网站能快速赚钱内容营销
  • 潍坊 公司 网站百度搜索排行榜风云榜
  • 中壹建设工程有限公司官方网站办公软件培训
  • wordpress客服电话优化网站的步骤
  • 燕郊个人做网站seo整站优化哪家专业
  • 南京品牌网站建设正规seo排名外包
  • 网站建设优化服务好么百度推广优化中心
  • 专业做seo的网站三只松鼠口碑营销案例
  • 网站对比百度联盟广告
  • 湖北免费网站建设网站怎么制作免费的
  • 做瞹瞹视频电影邪恶网站无经验能做sem专员
  • 甘肃网站排名公司开封seo推广
  • 龙岗英文网站制作武汉seo首页优化技巧
  • f福州网站建设公司网络营销的概念与含义
  • 萍乡做网站哪家好seo诊断报告
  • 深圳搜索引擎文大侠seo博客
  • 学校作业怎么做网站怎么样推广自己的网址
  • ps网站界面设计站长之家查询工具
  • 制作企业网站首页怎么做百度网站网址是多少
  • 两学一做专题教育网站网络营销课程速成班
  • 网站开发项目心得成都网络优化托管公司
  • 个人网站 建设方案书网络销售平台排名前十
  • 免费b2b平台推广有询盘吗网站为什么要seo?