
IT professional with 22 years of total experience. Software Development: 16.5 years of Software Development experience in Java, J2EE projects. IT Project Management: 6years of IT Development management experience handling Java based projects.
Senior / Lead Java Developer
Sorice Solutions Pvt. Ltd.Development / Technical Lead
Freelance projectsTechnical Project Manager
Techware SolutionTechnical Lead
Autonomy Interwoven (a HP company)Project Manager
Qburst TechnologiesTechnical Project Manager
Framework Systems & SolutionsSystems Analyst
Satyam Computer Services Ltd.Analyst
Verizon Data Services (I) Ltd.Java Programmer/Senior Programmer
Various (Three different organizations)
Redmine

Confluence

ANT

JUnit 5

Redis

Postman

Apache Kafka

Mockito
.png)
Jenkins

CVS

SVN
Myself, Raju. I have around 22 years of IT experience in software development. And out of which 20 years is in Java. Currently, I am working as a Java developer in the company in Cochin. The technology stack is Spring Java. Java 11, Spring Boot, Spring Data, ODP, Apache Kafka.
Typically, we can use Spring Security, using the basic authentication as well as open authentication for OAuth 2. Spring Security is well integrated with third-party integrations also. So, I would recommend securing this RESTful endpoints using Spring Security. And, in hope, we can use JWT, JSON Web Tokens. So, we can get the client ID and client secret from the JWT and then authenticate the client which is hitting the RESTful endpoint.
Yeah. Typically, we can use database-related transactions. We can have save points and roll back that. However, Spring comes with a transaction that is well integrated with JTA. So we can have Spring-based transactions with multiple levels and roll back. We can also implement a rollback strategy using Spring Transaction Management.
I like the previous question. We can introduce a print transactional manager. I think with the right annotation, transactional, we can have transactions at the method level. And then, yes. We can introduce the asset properties of that transaction in Spring Boot. So typically in a Spring Boot with MySQL or any RDBMS integration, we can introduce this using the Spring API at the level.
Using Spring framework, I think the Rust based application interview with sprint security, we can have a low latency and very lightweight and high throughput Java application. Because typically we can introduce JSON based data transfer. So it is very lightweight. I think we can introduce Spring based, a Spring REST framework. Spring based Rust based application so that is one way to design a low latency high throughput. Coming to the database side, I think if it is not much required with the if the relationship is not much mandatory, then we can go with NoSQL. That again gives very fast results search results and the database insertion is also very fast because NoSQL is also like a JSON format. So it is very lightweight. But typically we have to consider about the security as well as the managing of the applications. So that is one area which we have to look at.
Yeah, I think in the subclass in the override method, we shouldn't use for set width, we have to use only the superclass set width. Otherwise, that overriding principle is not followed. So, this is not a typical example of a runtime polymorphism. For set height and set width, we have to correspondingly call the superclass set width and set height.
Yeah. This is a typical example where in a multi-threaded environment, there can be a chance of more than one instance. So, better practice is either to use an enum, a singleton object, or we can use the static getInstance method. We can use the synchronized keyword and say that within the static singleton getInstance method, we can synchronize that method so that it will always return one instance of that Singleton object. Otherwise, we can use the Enum-based Singleton that comes with Java 1.5.
We can, while using spring and hibernate as an ORM framework, it enables 1st level cache and 2nd level cache. So, the memory requirement is little we can reduce that memory footprint and also in that way we can avoid out of memory errors. So when processing very large datasets using hibernate, we can employ the second level cache and so that whenever you fetch a record you can use that actually. The second thing is the session factory is another feature of hibernate. That also can help you to avoid out of memory errors.
Yeah, we can introduce test cases in the typically business logic areas. So typically in a Spring Boot project, when there is a service class or a repository class, in the service class, we can employ these test cases at the rate of Spring Test, which is some Spring Boot test that we can employ the test cases for. So, this is code-level testing. And the QA-level test cases, I think we can prioritize the insertion area and the main database insertion area. We can also employ Mockito at the unit level testing, the Mockito framework. But coming to test cases, I think we have to cover the database interaction area, the security level area, the security interaction area. Those areas, we have to prioritize first because any security breach should be avoided. And also the database level, the performance, we can see how much we can improve that performance also. So I think prioritizing these two integration areas is important.
Yeah. Here also we can have some spring security based libraries to that means whenever we call suppose we are calling an external API using REST and rate, we have to first check the API's security part and then call the REST-based application for that external API.