能@Component
,@Repository
并@Service
注释互换在Spring中,还是他们提供任何特殊的功能,除了作为一个符号设备?
换句话说,如果我有一个Service类并且我将注释更改@Service
为@Component
,它仍然会以相同的方式运行吗?
或者注释是否也会影响类的行为和功能?
如何配置Spring Boot应用程序侦听的TCP/IP端口,因此它不使用默认端口8080.
我正在学习春天3,我似乎没有把握背后的功能<context:annotation-config>
和<context:component-scan>
.
根据我的阅读,他们似乎处理不同的注释(@ Required,@ Autowired etc vs @Component,@ Repository,@ Service等),但也从我读过的内容中注册了相同的bean后处理器类.
为了让我更加困惑,有一个@Required
属性@Autowired
.
有人可以对这些标签有所了解吗?什么是相似的,什么是不同的,一个被另一个取代,它们相互完成,我需要其中一个,两者都有吗?
我正在浏览一些关于SpringSource的博客,在一个博客中,作者正在使用@Inject
,我想他也可以使用@Autowired
.
这是一段代码:
@Inject private CustomerOrderService customerOrderService;
我不确定它们之间的区别,@Inject
并且@Autowired
如果有人解释了它们之间的差异以及在什么情况下使用哪一个,我将不胜感激?
我听到很多关于Spring的消息,人们在网上都说Spring是一个很好的Web开发框架.Spring Framework究竟是什么?
Spring Data JPA CrudRepository
和JpaRepository
接口有什么区别?
当我在网上看到这些例子时,我看到它们在那里可以互换使用.他们之间有什么区别?你为什么要用一个而不是另一个?
注意:这是针对常见问题的规范答案.
我有一个Spring @Service
class(MileageFeeCalculator
),它有一个@Autowired
field(rateService
),但该字段是null
我尝试使用它时.日志显示正在创建MileageFeeCalculator
bean和MileageRateService
bean,但NullPointerException
每当我尝试mileageCharge
在我的服务bean上调用该方法时,我都会得到.为什么Spring没有自动装配领域?
控制器类:
@Controller
public class MileageFeeController {
@RequestMapping("/mileage/{miles}")
@ResponseBody
public float mileageFee(@PathVariable int miles) {
MileageFeeCalculator calc = new MileageFeeCalculator();
return calc.mileageCharge(miles);
}
}
Run Code Online (Sandbox Code Playgroud)
服务类:
@Service
public class MileageFeeCalculator {
@Autowired
private MileageRateService rateService; // <--- should be autowired, is null
public float mileageCharge(final int miles) {
return (miles * rateService.ratePerMile()); // <--- throws NPE
}
}
Run Code Online (Sandbox Code Playgroud)
应该自动装配的服务bean,MileageFeeCalculator
但它不是:
@Service …
Run Code Online (Sandbox Code Playgroud) 你应该把它@Transactional
放在DAO
类和/或它们的方法中,还是更好地注释使用DAO对象调用的Service类?或者注释两个"层"是否有意义?
关于控制(IoC
)的反转是如何工作的,我有点困惑Spring
.
假设我有一个名为的UserServiceImpl
实现UserService
接口的服务类.
怎么会这样@Autowired
?
而在我Controllers
,我怎么会instantiate
在instance
这个服务的?
我会做以下吗?
UserService userService = new UserServiceImpl();
Run Code Online (Sandbox Code Playgroud) 我在尝试获取JSON请求并处理它时收到以下错误:
org.codehaus.jackson.map.JsonMappingException:找不到类型[simple type,class com.myweb.ApplesDO]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息?)
这是我要发送的JSON:
{
"applesDO" : [
{
"apple" : "Green Apple"
},
{
"apple" : "Red Apple"
}
]
}
Run Code Online (Sandbox Code Playgroud)
在Controller中,我有以下方法签名:
@RequestMapping("showApples.do")
public String getApples(@RequestBody final AllApplesDO applesRequest){
// Method Code
}
Run Code Online (Sandbox Code Playgroud)
AllApplesDO是ApplesDO的包装器:
public class AllApplesDO {
private List<ApplesDO> applesDO;
public List<ApplesDO> getApplesDO() {
return applesDO;
}
public void setApplesDO(List<ApplesDO> applesDO) {
this.applesDO = applesDO;
}
}
Run Code Online (Sandbox Code Playgroud)
ApplesDO:
public class ApplesDO {
private String apple;
public String getApple() {
return apple;
}
public void setApple(String appl) { …
Run Code Online (Sandbox Code Playgroud) java ×10
spring ×10
annotations ×4
autowired ×3
spring-mvc ×2
dao ×1
frameworks ×1
inject ×1
jackson ×1
jpa ×1
json ×1
null ×1
port ×1
server ×1
spring-3 ×1
spring-boot ×1
spring-data ×1
transactions ×1
web ×1