Skip to content

SpringMVC class enhance conflict #3076

@wu-sheng

Description

@wu-sheng

@candyleer Let's continue the discussion here

Quotes from #3035
@candyleer

I think the best way is do not implement EnhancedInstance(cause spring has some dependcy for interface,if we want make the program work as same as without skywalking agent), we can cache the method and path in the static map cache,and provide do not implement EnhancedInstance mechanism can solve some other problem, such as dubbo-conflict-plugin(which I think it has some side effect if dubbo change the patch class we do)
so I am prepare working on do not implement EnhancedInstance way for springmvc first

@wu-sheng

In the old day(not in SkyWalking), I check about how to do Spring Controller plugin, the reason for EnhancedInstance is that there is no place to put mapping path cache, so most likely, you have to maintain a static map to do so, which cause the performance concern in big system(10k+ Controller methods at least)
I am totally aware this kind of OP has risk, but, actually, if we consider this risk, we can't do anything at any class because any class could be added in Spring context by the end-user, we don't know.
This is why we added Spring patch at first place, could you try to enhance it rather than provide a plugin or remove this field?

Metadata

Metadata

Labels

agentLanguage agent related.featureNew featurepluginPlugin for agent or collector. Be used to extend the capabilities of default implementor.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions