Is it Correct or not that Every component needs to be published dynamically (using dynamic CT) if the component/content needs to be used in spring MVC application using DD4T 2.0 Java code. Because if we do not use dynamic CT then we did not find any record for that component in COMPONENT_PRESENTATIONS table and i thing dd4t java apis will pick the content from this table only.
In short, the answer is NO. The DD4T provider will access the broker database for a Tridion Page, Dynamic Component Presentation, Taxonomy (Categories and keywords) and Multimedia. The output will be JSON data that would be ViewModels in your application.
There is a great article for starters by Raimond HERE.