小编Bar*_*sma的帖子

为什么@Value 作为构造函数的参数正确填充属性?

我的问题是:为什么这段代码正确设置了构造函数参数属性port

private final RedisServer redisServer;

public RedisTestConfiguration(@Value("${cache.port}") final int port) {
   this.redisServer = new RedisServer(port);
}
Run Code Online (Sandbox Code Playgroud)

据我了解,@Value("${cache.port}")是由名为 AutowiredAnnotationBeanPostProcessor 的 BeanPostProcessor 解决的。Spring bean 生命周期的工作方式是在任何 BeanPostProcess 之前调用构造函数方法,请参见下图。注意构造函数在 BeanPostProcessor.postProcessBeforeInitialization() 之前被调用。

Spring Bean 生命周期

这怎么还在工作?

问候,

巴特

java spring spring-boot

5
推荐指数
1
解决办法
174
查看次数

子组件中的 Angular @Input 也会更新父组件中的值

在 angular@Input属性上结合[propertyNameInParent] = ”propertyNameInChild”允许我们将父属性的值绑定到子属性。也称为单向绑定。奇怪的是,就我而言,它也在更新父类中的属性。这怎么可能?

父组件 -> 收藏夹城市子组件 -> 城市详细信息

所以基本上在(点击)事件中,最喜欢的城市是选择(selectedCity 属性)。然后在城市详细信息组件中,城市可以通过单击onPlusIconClick()。不知何故,这也触发了最喜欢城市的 city.rating 上升。为什么我不必使用事件发射器将更新后的值发送回父组件?

最喜欢的城市.component.ts

import {Component, OnInit} from '@angular/core';
import {CitiesService} from '../../services/cities.service';
import {City} from '../../model/city';

@Component({
selector: 'app-favorite-cities',
templateUrl: './favorite-cities.component.html',
styleUrls: ['./favorite-cities.component.css']
})
export class FavoriteCitiesComponent implements OnInit {

cities: City[];
selectedCity: City;

constructor(private citiesService: CitiesService) {
}

ngOnInit() {
    this.citiesService.getCities().subscribe(
        (data) => this.cities = data,
        (err) => console.log(err),
        () => { }
    );
}

setSelectedCity(city: City): void {
    this.selectedCity = city; …
Run Code Online (Sandbox Code Playgroud)

property-binding angular

4
推荐指数
1
解决办法
348
查看次数

标签 统计

angular ×1

java ×1

property-binding ×1

spring ×1

spring-boot ×1